我使用python代码通过mqttc将消息发布到节点红色。问题是在20 mqttc发布之后,数据没有被发布到节点红色。
下面是我用来发布到节点红色的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个值,然后停止。
我的节点红色工作流如下所示。

发布于 2014-07-08 03:45:36
  mqttc.connect("nodered&mqtt_server_ip",1883)
    i=1
    while True:
        i=i+1
        mqttc.publish("sensor",i,0)//corrected code
        time.sleep(1)发布于 2014-07-08 06:00:15
http://mosquitto.org/man/mqtt-7.html
MQTT定义了服务质量(QoS)的三个级别。QoS定义了代理/客户端确保接收消息的难度。消息可以在任何QoS级别发送,客户端可以尝试在任何QoS级别订阅主题。这意味着客户端选择它将接收的最大QoS。例如,如果在QoS 2发布了一条消息,而客户端订阅了QoS 0,则该消息将以QoS 0传递给该客户端。如果第二个客户端也订阅了相同的主题,但是使用了QoS 2,那么它将收到相同的消息,但使用QoS 2。在第二个示例中,如果客户端订阅了QoS 2,并且在QoS 0上发布了消息,则客户端将在QoS 0上接收消息。
较高级别的QoS更可靠,但涉及更高的延迟和更高的带宽要求。
0:代理/客户端将传递一次消息,但没有确认。
1:代理/客户端将至少传递一次消息,并需要确认。
2:代理/客户端将使用四步握手准确地传递消息一次。
https://stackoverflow.com/questions/24611217
复制相似问题