无需订阅 python Paho MQTT 库即可接收消息
Receiving messages without subscribing in python Paho MQTT library
我正在做一个项目,我需要两台计算机通过 MQTT 进行通信。为了测试它,我创建了这段代码。我 运行 我笔记本电脑上的这段代码:
import paho.mqtt.client as mqtt
import time
def on_connect(client,userdata,flags,rc):
if rc == 0:
print("connected OK")
else:
print("bad connection Returned code=",rc)
client.subscribe('test/message')
def on_subscribe():
print('hello')
def on_message(client,userdata,msg):
message=str(msg.payload.decode())
print(message)
broker = "10.49.12.253"
client = mqtt.Client("Get")
client.on_subscribe = on_subscribe
client.on_connect = on_connect
client.on_message = on_message
print("Connecting to broker ",broker)
client.connect(broker)
client.loop_forever()
从另一台计算机发布消息后,我得到了这个输出:
Connecting to broker 10.49.12.253
connected OK
Hello, world
我发送消息的计算机也是代理。我很困惑,因为 on_subscribe
函数从未被调用过,我不明白为什么我仍然收到消息。这是怎么回事?
问题是您的 on_subscribe()
函数缺少所需数量的参数。应该是:
...
def on_subscribe(client, userdata, mid, granted_qos):
print("hello")
...
Paho 在 try/except 块中触发回调,并吞下错误签名会抛出的错误消息。
文档:https://www.eclipse.org/paho/index.php?page=clients/python/docs/index.php#on-subscribe
我正在做一个项目,我需要两台计算机通过 MQTT 进行通信。为了测试它,我创建了这段代码。我 运行 我笔记本电脑上的这段代码:
import paho.mqtt.client as mqtt
import time
def on_connect(client,userdata,flags,rc):
if rc == 0:
print("connected OK")
else:
print("bad connection Returned code=",rc)
client.subscribe('test/message')
def on_subscribe():
print('hello')
def on_message(client,userdata,msg):
message=str(msg.payload.decode())
print(message)
broker = "10.49.12.253"
client = mqtt.Client("Get")
client.on_subscribe = on_subscribe
client.on_connect = on_connect
client.on_message = on_message
print("Connecting to broker ",broker)
client.connect(broker)
client.loop_forever()
从另一台计算机发布消息后,我得到了这个输出:
Connecting to broker 10.49.12.253
connected OK
Hello, world
我发送消息的计算机也是代理。我很困惑,因为 on_subscribe
函数从未被调用过,我不明白为什么我仍然收到消息。这是怎么回事?
问题是您的 on_subscribe()
函数缺少所需数量的参数。应该是:
...
def on_subscribe(client, userdata, mid, granted_qos):
print("hello")
...
Paho 在 try/except 块中触发回调,并吞下错误签名会抛出的错误消息。
文档:https://www.eclipse.org/paho/index.php?page=clients/python/docs/index.php#on-subscribe