首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Raspberry-pi mqttc.publish()到节点-红色溢出后20项

Raspberry-pi mqttc.publish()到节点-红色溢出后20项
EN

Stack Overflow用户
提问于 2014-07-07 13:01:27
回答 2查看 189关注 0票数 2

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

下面是我用来发布到节点红色的python代码:

代码语言:javascript
运行
复制
mqttc.connect("nodered&mqtt_server_ip",1883)
i=1
while True:

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

我也试过:

代码语言:javascript
运行
复制
 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个值,然后停止。

我的节点红色工作流如下所示。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-08 03:45:36

代码语言:javascript
运行
复制
  mqttc.connect("nodered&mqtt_server_ip",1883)
    i=1
    while True:

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

Stack Overflow用户

发布于 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:代理/客户端将使用四步握手准确地传递消息一次。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24611217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档