2017-01-26 53 views
2

我正在使用mqtt和蚊子代理为Android平台构建简单的即时聊天。现在我想实现一个条件,任何客户端都可以检查另一个客户端是否在线。Mqtt检查客户端是否在线或离线

我知道Last will and testament,但我希望只有在应用程序处于非活动状态或用户当前未使用该应用程序时,才会离线检测到用户。

我其实需要任何代码,bu想要一个想法如何实现这一点,我将非常感激。

+0

您可以手动设置LWT话题,当应用程序被关闭(其实你无论如何都要做到这一点,因为LWT会只有当客户因网络问题/崩溃而离线时才会触发) – hardillb

回答

2

您可以在不依赖MQTT内部结构的情况下执行此操作,这在我看来更容易。通过这种方法,您可以更好地控制发生的事情:

客户端可以定期在另一个主题内发送消息,以通知服务器其可用性。如果服务器在指定的时间后没有收到该消息,则可以认为它处于脱机状态。

如果用户注销并通知服务器井,客户端也可以发送另一条消息。

如果你坚持使用MQTT内部结构,你会发现这个问题非常有用: How to Find Connected MQTT Client Details