【发布时间】:2021-01-11 10:39:42
【问题描述】:
我想实现 paho-mqtt,它应该在其中异步处理传入的消息。
我已经用 asyncio 实现了 gmqtt,它运行得非常好,但据我了解,paho-mqtt 比 gmqtt 更好用(链接:https://www.emqx.io/blog/comparision-of-python-mqtt-client)。
gmqtt w/异步:
def assign_callbacks_to_client(self, client):
""" Helper function which sets up client's callbacks. """
client.on_connect = self.on_connect
client.on_message = self.on_message
client.on_disconnect = self.on_disconnect
client.on_subscribe = self.on_subscribe
async def subscriber(self, mqtt_name):
""" Connect to mqtt-broker. """
sub_client = MQTTClient(mqtt_name)
self.assign_callbacks_to_client(sub_client)
logging.info("connecting")
await sub_client.connect(host=config.MQTT_HOST, port=int(config.MQTT_PORT))
return sub_client
能否请您告诉我,如何使用 asyncio 库实现 paho? 将异步使用 loop_start,据我所知,每次执行它都会在后台启动一个新线程。
【问题讨论】:
标签: python python-3.x mqtt python-asyncio paho