与多个客户端的MQTT通信

2024-10-01 02:33:26 发布

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

我正在实现推车、电梯和移动设备之间的MQTT客户机通信。示例场景是,购物车将在331房间获取文档,并通过电梯和移动设备将文档交给442房间。在

我想在一个python文件中声明3个客户机,但是Paho MQTTon_connect, on_message中的内置函数,。。。仅适用于“一个”客户端。因此,在我的情况下,只有购物车客户端工作,我的控制台显示如下:

Cart connected with result code 0
cart/status b'ON'
cart/room/starting_room_number b'331'

你能帮我怎样让3个客户互相交流吗? 这是我的mqtt.py代码文件:

^{pr2}$

Tags: 文件文档声明客户端示例客户机场景mqtt
1条回答
网友
1楼 · 发布于 2024-10-01 02:33:26

您可以为每个客户端声明备用函数:

...
def on_connect_cart(client, obj, flags, rc):
    if rc == 0:
        print("Cart connected with result code " + str(rc))
    else:
        print("Bad connection returned code = ", rc)

def on_message_cart(client, obj, msg):
    print(msg.topic + " " + str(msg.payload))


def on_connect_mobile(client, obj, flags, rc):
    if rc == 0:
        print("Cart connected with result code " + str(rc))
    else:
        print("Bad connection returned code = ", rc)

def on_message_mobile(client, obj, msg):
    print(msg.topic + " " + str(msg.payload))
cart = mqtt.Client()
mobile = mqtt.Client()
elevator = mqtt.Client()

cart.on_connect = on_connect_cart
cart.on_message = on_message_cart
mobile.on_connect = on_connect_mobile
mobile.on_message = on_message_mobile
...

相关问题 更多 >