错误:[Erno 10048]:从客户端向代理发送10000条发布消息时(python、MQTT、树莓pi)



我正在研究MQTT协议的性能。我使用Raspberry Pi作为MQTT代理,使用PC作为客户端,两者都连接在同一局域网中。PC向broker发送一条消息,当broker收到消息时,它会发布一条publish.single。当我尝试以qos=2每分钟发送10000条发布消息时,在大约8163条消息后,我在客户端收到以下错误消息:

error: [Errno 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted

我对qos=0和qos=1进行了同样的尝试,但没有出现同样的错误。怎么了?

这很可能是因为您已经耗尽了客户端机器上可用的本地端口数量,因为您有太多的消息在传输。

QOS2消息的开销要大得多(它们需要双向确认)。

使用publish.single方法可能会使情况变得更糟,因为这将为每条消息创建并拆除与代理的完整连接,如果您创建一个持久连接并重用它,事情可能会更好。

最新更新