错误:[Errno 10048]:从客户端向代理发送10,000个发布消息时(python,MQTT,raspberry pi)

时间:2016-04-29 12:48:07

标签: python sockets mqtt

我正在研究MQTT协议的性能。我使用Raspberry Pi作为MQTT代理,并将PC作为客户端连接在同一个LAN中。 PC向代理发送消息,当代理收到消息时,它会发回一个publish.single。当我尝试用qos = 2每分钟发送10,000个发布消息时,我在~8163消息后在客户端收到以下错误消息:

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

我为qos = 0和qos = 1尝试了相同的操作,它没有得到相同的错误。问题是什么?

1 个答案:

答案 0 :(得分:2)

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

QOS 2消息的开销更大(需要双向确认)。

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