客户端如何知道自己离线呢

因网络等问题,设备与emq服务器连接异常断开,客户端如何知道这个断开的信号呢?

可以使用 WebHook 或者 系统消息
https://www.emqx.io/docs/en/v4.3/advanced/webhook.html
https://www.emqx.io/docs/en/v4.3/advanced/system-topic.html

你说的这个webhook或系统消息,是通知系统服务的某个api来统一处理所有设备离线后的业务吧?但是我现在的需求是,如果设备异常离线,设备自己要怎么知道这个离线状态,假如有几百台上千台设备,我想要让每个设备可以自己处理自己的离线业务,例如设备和emq服务器连接断开,设备自己知道后进行蜂鸣器/指示灯提示等操作。这个客户端,指的是设备。服务那边很容易知道设备上线离线,关键是设备那边要怎么知道自己是否在线呢

设备自己处理网络断开的事件或者异常就行了呀

:joy:又回到这个问题本身了,设备怎么知道emq网络连接中断呢?目前设备和服务器的唯一通信方式是mqtt,难道再弄个http或者ping去判断服务器网络吗?

mqtt有个心跳协议,你去了解一下协议定义。你可以根据心跳协议进行判断是否断线。服务端也是通过mqtt 心跳进行确认是否掉线。

好的,谢谢 :+1: