Reading subscribed MQTT messages after reconnect(重新连接后阅读订阅的MQTT消息)
本文介绍了重新连接后阅读订阅的MQTT消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试读取MQTT服务器上的邮件。在某些情况下,连接不稳定,需要重新连接。但在重新连接后,我无法收到来自我之前订阅的主题的任何消息。我正在使用PAHO的python包来处理MQTT连接。以下是我使用的一些代码
TopicName='some/topic/name'
class Counter:
def __init__(self, mqttClient):
self.messages_recieved = 0
self.mqttClient = mqttClient
self.mqttClient.subscribe(TopicName)
self.mqttClient.on_message = self.on_message
self.mqttClient.on_disconnect = self.on_disconnect
self.mqttClient.loop_start()
def on_message(self, client, userdata, message):
self.messages_received += 1
def on_disconnect(self, client, userdata, rc):
if rc != 0:
print("Trying to reconnect")
while not self.mqttClient.is_connected():
try:
self.mqttClient.reconnect()
except OSError:
pass
如果我的互联网出现故障,我将无法再接收消息。我尝试再次订阅该主题,并尝试在on_disconnect方法中调用loop_start,但这两种方法都不起作用。任何解决方案都会有帮助。另外,为了指出消息正在发送,我可以在MQTT墙上的浏览器中看到它们
推荐答案
您尚未显示调用Connect的位置,但通常的安全模式是将调用放在附加到客户端的on_connect()
回调中。
这意味着对订阅的调用将
- 始终等到连接完成
- 重新连接发生时自动再次调用
这篇关于重新连接后阅读订阅的MQTT消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:重新连接后阅读订阅的MQTT消息


基础教程推荐
猜你喜欢
- 无法导入 Pytorch [WinError 126] 找不到指定的模块 2022-01-01
- PANDA VALUE_COUNTS包含GROUP BY之前的所有值 2022-01-01
- 修改列表中的数据帧不起作用 2022-01-01
- 求两个直方图的卷积 2022-01-01
- 在Python中从Azure BLOB存储中读取文件 2022-01-01
- 在同一图形上绘制Bokeh的烛台和音量条 2022-01-01
- PermissionError: pip 从 8.1.1 升级到 8.1.2 2022-01-01
- 包装空间模型 2022-01-01
- 使用大型矩阵时禁止 Pycharm 输出中的自动换行符 2022-01-01
- Plotly:如何设置绘图图形的样式,使其不显示缺失日期的间隙? 2022-01-01