我見過很多paho客戶端讀取傳感器數據然後發佈的例子,例如https://github.com/jamesmoulding/motion-sensor/blob/master/open.py。我見過的都沒有啓動網絡循環,如https://eclipse.org/paho/clients/python/docs/#network-loop中所建議的。我想知道如果網絡循環是不必要的發佈?也許只有當我訂閱某些東西時才需要?mqtt paho網絡循環不必要?
0
A
回答
0
需要對一些事物的網絡環路:
- 爲了應對收到的消息
- 要發送永葆
- 要處理需要額外的數據包連接所需的Ping報文高QOS
- 發送該佔用多於一個的網絡分組(比本地MTU大例如)消息
只有在消息速率較低(每個存活期間少於1 msg)時才需要ping消息。
鑑於你可以在一個單獨的線程在後臺啓動網絡環路這些日子裏,我會建議無論
0
啓動它爲了擴大在什麼@hardillb說了一下,他的觀點2「送平安只有當您發佈的速率不足以與您在連接時設置的Keepalive相匹配時,才需要保持連接處於活動狀態所需的數據包「。換句話說,客戶完全有可能永遠不需要發送PINGREQ,因此永遠不需要接收PINGRESP。
但是,更重要的一點是,不可能保證調用publish()
將實際完成發送消息而不使用網絡循環。它可能在某些時候有效,但可能無法在任何時候完成發送消息。
客戶端的下一個版本將允許你這樣做:
m = mqttc.publish("class", "bar", qos=2)
m.wait_for_publish()
但這將要求,網絡環路是在一個單獨的線程進行處理,與loop_start()
。
相關問題
- 1. Paho MQTT vs MQTT paho spring集成
- 2. Android MQTT - Paho不支持wss://
- 3. Paho MQTT Golang協議
- 4. 看似不必要循環
- 5. android - Paho MQTT服務發佈
- 6. Paho MQTT拋出異常
- 7. Python Paho MQTT og IBM Watson IoT
- 8. 無法訂閱paho mqtt java
- 9. paho-mqtt:回調線程
- 10. Paho JavaScript mqtt壓縮負載
- 11. Android PAHO MQTT messageArrived回調不觸發
- 12. 不必要的循環工作簿_AfterSave
- 13. R For循環不必要的覆蓋
- 14. MQTT PUBACK網絡套接字
- 15. R和網絡與循環
- 16. Mosquitto MQTT循環訂閱
- 17. MQTT paho卡在致電給message_callback_add
- 18. paho-mqtt訂閱支票訂閱狀態
- 19. Paho-Mqtt django,on_message()函數運行兩次
- 20. (Paho)MQTT回調沒有關閉
- 21. Android中mqtt的Eclipse paho拋出錯誤
- 22. 運行paho mqtt客戶端loop_forever
- 23. 安裝並使用C++的MQTT Paho庫
- 24. Paho(MQTT)客戶端無法連接
- 25. 如何將Paho-MQTT添加到android studio
- 26. paho中的MQTT無法連接連接
- 27. Paho MQTT Javascript訂閱多個主題?
- 28. MQTT Eclipse Paho Android應用程序基本
- 29. Python Paho/MQTT:檢測連接錯誤
- 30. 循環引用是否有必要?
我將繼續按照建議使用網絡迴路。但是請注意,有很多浮動在網上的例子(在教程等中)不使用它。也許還沒有讓足夠多的人受到傷害。不知道是否默認應該啓動它,並強制人們手動關閉它。現在是什麼顛倒了。 – fickas
是的,很多人沒有閱讀文檔:(我不打算通過改變行爲來打破向後兼容性,對於不處理循環的人來說,它只會是一個惱人的偶然錯誤。 – ralight