覆盆子mqttc.publish()在输入20个条目后出现溢出

2024-04-20 01:34:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用python代码通过mqttc将消息发布到节点red。问题是在20 mqttc发布之后,数据没有发布到节点red。在

下面是我用于发布到节点red的python代码:

mqttc.connect("nodered&mqtt_server_ip",1883)
i=1
while True:

    i=i+1
    mqttc.publish("sensor",i,1)
    time.sleep(1)

我也试过:

^{pr2}$

不管怎样,代码将前20个值发布到节点red,然后停止。在

我的节点red工作流如下。在

{1美元^


Tags: 数据代码iptrue消息节点serverconnect
2条回答

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:代理/客户机将通过四步握手传递消息一次。在

  mqttc.connect("nodered&mqtt_server_ip",1883)
    i=1
    while True:

        i=i+1
        mqttc.publish("sensor",i,0)//corrected code
        time.sleep(1)

相关问题 更多 >