2017-04-06 89 views
1

我正在使用mosquitto 1.4.10。Mosquitto有時會殺死客戶端連接

我有一個客戶端,批量發佈多個消息到同一主題(例如每批50封郵件)。客戶端會每隔幾秒發送一批(例如每5秒)。在發送一批或幾批後,在下一批中,突然間蚊子會殺死與客戶的連接。

我從經紀人運行的機器上看到provided a packet capture,顯示了我將在下面描述的行爲。

客戶:172.16.0.114 Mosquitto經紀人:10.16.208.139(端口8883)

下面的數字是在捕捉文件包的數目。

1:客戶端連接到經紀人

17 ?:客戶端開始發佈消息

的首批

386:第一批完成消息的

387:客戶端開始發佈第二批報文

388:缺少數據包?

389:Mosquitto的ACK分組387

390:開始Mosquitto濫發TCP DUP ACK分組387

549:Mosquitto停止濫發TCP DUP ACK分組387

550-578:大量的重發

784:第二批完成消息的

785:第三批消息開始

788:Mosquitto發送FIN ACK,關閉連接

790-880(爲什麼?):Mosquitto響應其餘消息與RST

的主要問題是,爲什麼會突然mosquitto關閉連接開始接收第三批消息後。在此時,其中第三批開始mosquitto日誌是在這裏:

18:52:24 
1491418344: OpenSSL Error: error:140E0197:SSL routines:SSL_shutdown:shutdown while in init 
18:52:24 
1491418344: Socket error on client admin, disconnecting. 
+0

似乎更多的可能是這是一個客戶端或網絡問題比蚊子問題。或與系統託管蚊子問題。你有沒有嘗試過運行Mosquitto本地客戶端,看看它是否工作不同。 – barny

回答

0

這是由在mosquitto如果另一個非SSL連接嘗試將終止現有的SSL連接的錯誤引起的。具體來說,由AWS負載平衡器執行的TCP健康狀況檢查正在發送一個觸發該錯誤的小TCP數據包,以終止客戶端的連接。

請參閱mosquitto github上的問題。