客户端<客户端名称&>已超过断开连接超时 [英] client <clientname> has exceeded timeout disconnecting

查看:29
本文介绍了客户端<客户端名称&>已超过断开连接超时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是MQTT 3.1.1,我在计算机上安装了蚊子作为本地服务器。

我正在将一些传感器数据从pubsubclient(MQTT客户端库)发送到蚊子,并从蚊子服务器将其保存到数据库

每当我开始会话最多5-10分钟时,我都会收到消息,但在此之后 MQTT客户端无法发送任何消息并自动断开连接。

在断开连接之前,在命令行中打印以下消息

client <clientname> has exceeded timeout, disconnecting
Socket error on client <clientname>, disconnecting.

我还使用默认配置的服务器,但QOS设置为2

导致此错误的原因是什么,以及 我应该做些什么,以便客户端不会断开与本地服务器的连接?

推荐答案

正在订阅的节点(如果再次发布花费的时间太长,可能还有发布节点)需要连接调用集上的‘KeepAlive’字段。除非您修改了设置中的超时值,否则大多数MQTT Broker将在大约5分钟后使连接超时。

将"KeepAlive"选项设置为类似于30秒或60秒的值将防止MQTT代理断开连接。您的订阅方将开始发送PINGREQ数据包,并且MQTT Broker将使用PINGRESP数据包进行回复。

单击此处阅读更多信息:http://www.steves-internet-guide.com/mqtt-keep-alive-by-example/

这篇关于客户端&lt;客户端名称&>已超过断开连接超时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆