2016-04-29 34 views
0

我正在研究MQTT協議的性能。我將Raspberry Pi用作MQTT代理,並將PC作爲客戶端連接到同一個局域網中。 PC向代理髮送消息,當代理收到消息時,它會發佈一個publish.single。當我嘗試發送萬發佈消息每分鐘有QoS = 2,我收到以下錯誤信息在客戶端後〜8163級的消息:錯誤:[Errno 10048]:從客戶端向代理髮送10,000條發佈消息時(python,MQTT,raspberry pi)

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

我嘗試同樣的QoS = 0和QoS = 1,它的工作沒有得到相同的錯誤。有什麼問題?

回答

2

這很可能是因爲您已經耗盡了客戶端計算機上可用的本地端口數量,因爲您有太多的消息正在進行中。

QOS 2消息有更多的開銷(他們需要雙向確認)。

它可能通過使用publish.single方法變得更糟,因爲如果創建持久連接並重用它,事情可能會流動得更好,因爲這將創建並拆除與每個消息的代理的完整連接。

相關問題