订阅多个主题Asyncio_mqtt

2024-04-19 22:34:28 发布

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

我正在尝试订阅多个mqtt主题并同时接收它们的所有消息。 这是我代码的一部分:

class mqtt_task():
def __init__(self, broker, subscription):
    self.broker = broker
    self.subscription = subscription

async def sub_and_listen_task(self):
    while True:
        try:
            async with Client(self.broker) as client:
                self.client = client
                print(self.subscription)
                #for i in self.subscription:
                async with client.filtered_messages(self.subscription) as messages:
                    await client.subscribe(self.subscription)
                    async for message in messages:
                        print(message.payload, ' ' ,  message.topic)
mqtt_task(broker, subscription)

Self.subscription是一个主题列表,使用for循环不起作用,因为它只订阅第一个主题。任何帮助都将不胜感激


Tags: selfclientmessage主题fortaskasyncdef