2015-04-22 47 views
-1

使用在我的情况,我用MQTT的最后遗嘱短信通知某些客户端断开意外,如听力题目是“状态”。关于遗嘱的消息在MQTT

我的问题是,当一个客户端连接到brokerA,然后意外断开与brokerA的连接,但它重新连接到brokerA,那时可能有一个“最后一条消息”发送到“status”话题?

另一个问题是:当最后一条消息可能在一个客户端意外断开与代理的连接后发送。

+1

您的问题不清楚,请考虑改进问题使其更加可靠! –

回答

0

有LWT中的一个很好的说明(遗愿和Testement)位置:

http://www.hivemq.com/mqtt-essentials-part-9-last-will-and-testament/

但简单的版本如下:

该券商将只提供了LWT消息在以下情况下会得到满足:

  • 服务器检测到I/O错误或网络故障。
  • 客户端在Keep Alive时间内未能通信。
  • 客户端关闭网络连接,而不先发送DISCONNECT 数据包。
  • 由于协议错误,服务器关闭网络连接。
+0

要么我误解你的最终陈述,要么我认为这是错误的。我认为这是前者,你能解释一下你的意思吗? – ralight

+0

我总是觉得,如果客户端崩溃并且重新启动时使用相同的客户端ID,那么对于适当长的keepAlive,您不应该看到LWT。可能是错误的,我已经尝试过了一段时间 – hardillb

+0

在这种情况下,它取决于代理是否检测到套接字关闭。不是你可以依赖的东西,我不认为。 – ralight