我见过很多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. Android MQTT - Paho不支持wss://
- 2. Paho MQTT Golang协议
- 3. 无法订阅paho mqtt java
- 4. Python Paho MQTT og IBM Watson IoT
- 5. Paho MQTT抛出异常
- 6. Paho JavaScript mqtt压缩负载
- 7. Android PAHO MQTT messageArrived回调不触发
- 8. R For循环不必要的覆盖
- 9. MQTT PUBACK网络套接字
- 10. R和网络与循环
- 11. 运行paho mqtt客户端loop_forever
- 12. MQTT Eclipse Paho Android应用程序基本
- 13. Paho MQTT Javascript订阅多个主题?
- 14. Paho-Mqtt django,on_message()函数运行两次
- 15. Python Paho/MQTT:检测连接错误
- 16. paho-mqtt订阅支票订阅状态
- 17. 如何将Paho-MQTT添加到android studio
- 18. 循环引用是否有必要?
- 19. 使用tcp反应原生paho mqtt不是webSocket
- 20. 亚马逊网络服务MQTT
- 21. TensorFlow:简单循环神经网络
- 22. Unity3D网络客户端拍摄循环
- 23. 网络连接的无限循环
- 24. 循环读取/处理网络太紧?
- 25. 在网络中循环一个按钮
- 26. WebRequest.Create忽略我的循环网络场
- 27. C++不必要的暂停执行循环
- 28. 角度4 * ng对于额外的循环是不必要的?
- 29. python tcpserver不要循环
- 30. JSHint错误不要循环
我将继续按照建议使用网络回路。但是请注意,有很多浮动在网上的例子(在教程等中)不使用它。也许还没有让足够多的人受到伤害。不知道是否默认应该启动它,并强制人们手动关闭它。现在是什么颠倒了。 – fickas
是的,很多人没有阅读文档:(我不打算通过改变行为来打破向后兼容性,对于不处理循环的人来说,它只会是一个恼人的偶然错误。 – ralight