Mosquitto有时会杀死客户端连接

时间:2017-04-06 23:42:58

标签: ssl openssl mqtt mosquitto

我正在使用mosquitto 1.4.10。

我有一个客户端批量发布多个消息到同一个主题(例如每批50个消息)。客户端将每隔几秒发送一批(例如,每5秒)。在发送了一个或几个批次后,在下一批中,突然mosquitto将终止与客户端的连接。

我在运行代理的机器上provided a packet capture显示了我将在下面描述的行为。

客户:172.16.0.114 Mosquitto经纪人:10.16.208.139(港口8883)

以下数字是捕获文件中的数据包编号。

  

1:客户连接到经纪人

     

17?:客户开始发布第一批消息

     

386:第一批消息完成

     

387:客户开始发布第二批消息

     

388:丢失数据包?

     

389:Mosquitto确认数据包387

     390:Mosquitto开始发送垃圾邮件TCP DUP ACK数据包387

     549:Mosquitto停止发送针对387的TCP DUP ACK数据包的垃圾邮件

     

550-578:重播次数

     

784:第二批消息完成

     

785:第三批消息开始

     788:Mosquitto发送FIN ACK,关闭连接(为什么?)

     

790-880:Mosquitto使用RST回复剩余的消息

主要问题是为什么mosquitto在开始接收第3批消息后会突然关闭连接。第三批开始的时间点在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.

1 个答案:

答案 0 :(得分:0)

这是由mosquitto中的一个错误引起的,如果尝试了另一个非SSL连接,它会杀死现有的SSL连接。具体来说,AWS负载均衡器执行的TCP运行状况检查是发送一个小的TCP数据包,触发了该错误以终止客户端的连接。

请参阅mosquitto github上的问题。

相关问题