Raspberry-pi mqttc.publish()在20个条目后出现节点红色溢出

我正在使用我的Python代码通过mqttc发布消息到节点红色。 问题是在20 mqttc发布之后,数据不会发布到node-red。

这里是我用来发布到node-red的python代码:

mqttc.connect("nodered&mqtt_server_ip",1883) i=1 while True: i=i+1 mqttc.publish("sensor",i,1) time.sleep(1) 

我也试过:

  i=1 while True: mqttc.connect("nodered&mqtt_server_ip",1883) i=i+1 mqttc.publish("sensor",i,1) mqttc.disconnect() time.sleep(1) 

无论如何,代码发布到节点红色的前20个值,然后停止。

我的节点红色工作stream程如下。

在这里输入图像描述

  mqttc.connect("nodered&mqtt_server_ip",1883) i=1 while True: i=i+1 mqttc.publish("sensor",i,0)//corrected code time.sleep(1) 

http://mosquitto.org/man/mqtt-7.html

MQTT定义了三个服务质量(QoS)级别。 QoS定义了代理/客户端将如何努力确保收到消息。 消息可以在任何QoS级别发送,并且客户端可以尝试订阅任何QoS级别的主题。 这意味着客户端将select最高的QoS。 例如,如果在QoS 2发布消息,并且客户端订购了QoS 0,则消息将被传送到具有QoS 0的客户端。如果第二个客户端也订购了相同的主题,但是具有QoS 2,则它将收到相同的消息,但具有QoS 2.第二个示例,如果客户端订阅了QoS 2,并且在QoS 0上发布消息,则客户端将在QoS 0上接收该消息。

更高级别的QoS更可靠,但涉及更高的延迟和更高的带宽要求。

0:经纪人/客户将传送一次信息,没有确认。

1:经纪人/客户将至less发送一次消息,并要求确认。

2:经纪人/客户将使用四步握手完全传递消息一次。