java
EMQ 使用的实践
近一年半在做物联网相关的项目,MQTT 是物联网技术中非常常见且协议。EMQ 是对 MQTT 协议实现的很不错的 Broker。当前的稳定版本是 V3.2.7; 下面我罗列一下使用中的一些实践和想法; 如何正确获得设备端连接断开事件 有三种做法: * 订阅EMQ 的系统主题$SYS/brokers/${node}/clients/{clientId}/disconnected; * 使用 web hook 插件; * 客户端使用遗愿; 第 1 种做法 可使用通配符方式只订阅一个主题,缺点就是所有客户端的离线都收到消息,需要在消费的时候再做判断,是否要关心,再触发具体的关心的设备类型的离线。 但是如果不使用通配符方式订阅的话,就得设备挨个订阅主题,这样就增加了很多订阅主题,给消息路由带来压力,是极不划算的做法; 第 2 种做法 缺点和第 1 种做法一样,收到的是所有设备的离线回调,需要在 controller