【发布时间】:2017-04-06 23:42:58
【问题描述】:
我正在使用 mosquitto 1.4.10。
我有一个客户端分批向同一主题发布多条消息(例如,每批 50 条消息)。客户端将每隔几秒(例如每 5 秒)发送每个批次。在发送了 1 批或几批之后,在下一批中,突然 mosquitto 将终止与客户端的连接。
我在代理运行的机器上发送了provided a packet capture,它显示了我将在下面描述的行为。
客户端:172.16.0.114 蚊子经纪人:10.16.208.139(8883端口)
下面的数字是抓包文件中的包号。
1:客户端连接到代理
17?:客户端开始发布第一批消息
386:第一批消息完成
387:客户端开始发布第二批消息
388:丢失数据包?
389:Mosquitto 确认数据包 387
390:Mosquitto 开始为 387 发送垃圾邮件 TCP DUP ACK 数据包
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.
【问题讨论】:
-
这似乎更可能是客户端或网络问题,而不是 Mosquitto 问题。或者托管 Mosquitto 的系统存在问题。您是否尝试过在 Mosquitto 本地运行客户端,看看效果是否不同。
标签: ssl openssl mqtt mosquitto