使用asyncio_mqtt大批量创建连接时候(大概200个),连接总是会失败,中间加1s延时创建连接,就不会出现连接丢失,怎么回事?

感谢回复!

找到原因了,是我自己代码的原因,在高并发时候或者快速循环创建连接时候,client_id字段值采用的是10位时间戳的形式。

太快的原因导致有些client_id重复,publish结束后会执行disconnect操作,使用相同client_id的其它连接就会被断开,无法继续publish。

现改用uuid的格式,经过大批量连接测试,问题未再复现。

灵感来自于:To narrow calls get a "asyncio_mqtt.error.MqttCodeError: [code:4] The client is not currently connected." · Issue #171 · sbtinstruments/aiomqtt · GitHub