python读取mqtt数据_无法接收Python中的所有MQTT消息

我尝试使用MQTT从一个python脚本向另一个脚本发送消息。一个脚本是一个发布者。第二个脚本是订阅服务器。我每隔0.1秒发送一次消息。在

发布者:client = mqtt.Client('DataReaderPub')

client.connect('127.0.0.1', 1883, 60)

print("MQTT parameters set.")

# Read from all files

count = 0

for i in range(1,51):

payload = "Hello world" + str(count)

client.publish(testtopic, payload, int(publisherqos))

client.loop()

count = count+1

print(count, ' msg sent: ', payload)

sleep(0.1)

认购人:

^{pr2}$

Moskitto broker版本-3.1

在莫斯基托.conf最大飞行中消息数设置为0,持久性为真。在

发布服务器QOS=2

用户QOS=2

topic=两个脚本中的“test”

当我在同一个脚本中运行subscriber和publisher时,消息将按预期发送和接收。但是当它们在不同的脚本中时,我不会收到所有消息,有时甚至没有消息。我先运行订阅服务器,然后运行发布服务器。我试过订户循环启动()和循环停止()等了几分钟。在

我无法调试此问题。任何指针都太好了!在

编辑:我包括在内客户机.loop()发布后。->与以前相同的输出

当我在“on_connect”和“on_disconnect”中打印出语句时,我注意到客户机mqtt连接几乎立即建立并断开连接。这种事每秒钟都会发生。我甚至有一次收到这个留言-

[WinError 10053]主机中的软件中止了已建立的连接

保持活力=60

还有其他参数我应该看看吗?在

Python使用MQTT协议读取OneNet数据可以通过使用MQTT库来实现。下面是一个简单的示例代码,演示了如何连接到OneNet的MQTT服务器,并订阅数据: ```python import paho.mqtt.client as mqtt # OneNet MQTT服务器信息 broker = "mqtt.heclouds.com" port = 6002 username = "<OneNet平台的产品ID>" password = "<OneNet平台的产品APIKey>" # 连接成功回调函数 def on_connect(client, userdata, flags, rc): print("Connected with result code "+str(rc)) # 订阅OneNet的数据 client.subscribe("<OneNet平台的数据通道>") # 收到消息回调函数 def on_message(client, userdata, msg): print("Received message: "+msg.payload.decode()) # 创建MQTT客户端 client = mqtt.Client() # 设置用户名和密码 client.username_pw_set(username, password) # 设置连接成功和收到消息的回调函数 client.on_connect = on_connect client.on_message = on_message # 连接到OneNet MQTT服务器 client.connect(broker, port, 60) # 保持MQTT连接 client.loop_forever() ``` 在代码,需要替换`<OneNet平台的产品ID>`、`<OneNet平台的产品APIKey>`和`<OneNet平台的数据通道>`为你在OneNet平台创建的产品ID、APIKey和数据通道名称。 这段代码会连接到OneNet的MQTT服务器,并订阅指定的数据通道。当有新的数据到达时,会调用`on_message`函数进行处理。你可以根据需要在`on_message`函数编写自己的数据处理逻辑。 希望这个示例能帮助到你!如果你有更多的问题,可以继续问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值