Как обработать сообщение в on_message mqtt paho, если несколько сообщений пришли одновременно
return_message = ""
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe(topic)
def on_message(client, userdata, message):
global return_message
print("received data is :")
return_message = message.payload
client = mqtt.Client("user")
client.on_connect=on_connect
client.on_message=on_message
client.connect(broker,port,60)
client.loop_start()
return_message является глобальной переменной. получение сообщения, когда есть только одно сообщение за раз. но мне нужно обрабатывать несколько сообщений за раз. как это сделать. если я объявлю return_message как массив, то также я думаю, что будет потеря данных. есть ли лучший способ сделать это. мне нужно передать значение возвращаемого сообщения в другие файлы также. как это сделать
Все сообщения обрабатываются в сетевом цикле клиента, это означает, что по умолчанию одновременно будет обрабатываться только одно сообщение, так как одновременно будет запущен только один экземпляр on_message
.
Если вы хотите обрабатывать сообщения параллельно, возможно, потому что обработка занимает много времени, то вам нужно создать собственный пул потоков и передать обработку сообщений этому пулу.