EMQX的web_hook使用心得-java
emqx自带的web_hook插件可以解决很多需求,比如监听设备的上下线,设备的订阅与发布等等:
- 修改配置文件;
emq的配置文件在 emqx安装目录/etc/plugins
vim emqx_web_hook.conf
修改web.hook.api.url ,将其改为自定义的接口
注释掉不用的事件。具体事件类别可查看官网
注意:修改完配置后重启生效 - 接口;
/** * @author zhangyr */ @RestController @RequestMapping @Api(tags = "emq的webHook管理") @AllArgsConstructor @Slf4j public class WebHookApi { @PostMapping("/webHook") public void receiveWebHookData(@RequestBody Map<String, Object> param) { //测试内容 log.info("监听到客户端活动信息========="); Iterator it = param.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); String key = (String) entry.getKey(); Object value = entry.getValue(); log.info(key + "=====" + value.toString()); } log.info("以上是接收的所有信息========="); //设备连接成功 if (WebHookConstant.ACTION_CONNECTED.equals(action)) { log.info("设备连接成功========="); } //设备断开连接成功 if (WebHookConstant.ACTION_DISCONNECTED.equals(action)) { log.info("设备断开连接成功========="); } //设备数据上传 if (WebHookConstant.MESSAGE_PUBLISH.equals(action)) { log.info("设备数据上传========="); } }
可定义一个类来区分事件
public class WebHookConstant { //固定的属性名 public static final String ACTION = "action"; public static final String CLINET_ID= "clientid"; public static final String USERNAME = "username"; public static final String REASON = "reason"; public static final String TOPIC = "topic"; public static final String PAYLOAD = "payload"; //消息的事件戳 public static final String TS = "ts"; //QoS 等级 public static final String QOS = "qos"; //消息来源用户名 public static final String FROM_USERNAME = "from_username"; //消息clientId public static final String FROM_CLIENT_ID = "from_client_id"; //ACTION /**断开连接*/ public static final String ACTION_DISCONNECTED = "client_disconnected"; /**成功连接*/ public static final String ACTION_CONNECTED = "client_connected"; /**上传数据*/ public static final String MESSAGE_PUBLISH = "message_publish"; }
测试结果
相关文章推荐
- 【WitchHat.cn心得】Silverlight中,即使使用HttpWebRequest也抛System.Security.SecurityException
- 4Fang Web打印组件使用心得
- 关于PHP使用WebHook的问题 Host key verification failed.
- 使用Lion.Web.UpLoadModule上传大文件心得
- AFN与SDWebImage简单使用心得
- 【web】jquery使用心得
- Active Report使用心得(一):配置iis及web.config文件(轉)
- webview使用心得
- webview使用心得
- 使用Azure WebJob的一点心得
- Active Report使用心得(一):配置iis及web.config文件
- 关于eWebEditor常见的问题及其个人使用心得
- spring心得2--bean的生命周期@Spring监听器的作用@Spring初始化容器案例分析@web项目使用
- Syline6.5学习心得-web-命令使用
- [Web]Mybatis的一些使用心得
- Git WebHook:用于迅速搭建并使用 WebHook 进行自动化部署和运维系统( Python)
- webuploader 使用心得 -2 接口说明
- 使用Rancher webhook实现弹性扩容缩容
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
- git在CICD实践中的应用11:gitee仓库webhook使用(下)