2015-12-21 61 views
0

第一次連接時無法接收消息。更詳細地說,user A已連接併發布消息,但user B未連接到該主題。因此,當user B將連接時,由於第一次連接b/w user auser b,他將不會收到來自用戶A的任何消息。第一次連接時未收到消息

我們如何解決這個問題?

感謝

+0

用戶B必須連接至少一次在cleanSession = false之前,它將開始接收QoS> 0 msgs。它可以在初始連接後斷開連接。但進入的新客戶不會奇蹟般地收到這些消息。與cleanSession = false的初始連接是必需的。你使用的是什麼框架/客戶/經紀人? – ddewaele

+0

我們正在使用moscapsule和mosquitto經紀人。 –

回答

1

的pub/sub的一個原則是,出版商和用戶的解耦,所以你真不該在連接到user buser a思維。

如果你想在不連接時,他們一個客戶端接收消息(留下保留的消息一側),要做到這一點的唯一方法是:

  • 連接事先與cleansession=false
  • 訂閱具有QoS > 0(或上mosquitto使用queue_qos0_messages選項)
  • 確保消息具有QoS> 0
  • 當客戶端重新連接出版,使用cleansession=false

要測試此,請嘗試:

mosquitto_sub -i prajbot-singh -h test.mosquitto.org -t prajbot-singh -c -q 1 

然後從mosquitto_sub退出並運行:

mosquitto_pub -h test.mosquitto.org -t prajbot-singh -m hello -q 1 

而且mosquitto_sub再次運行:

mosquitto_sub -i prajbot-singh -h test.mosquitto.org -t prajbot-singh -c -q 1 
+0

我只是在做同樣的配置,但它不適合我。 –