EMQX的web_hook使用心得

EMQX的web_hook使用心得-java


emqx自带的web_hook插件可以解决很多需求,比如监听设备的上下线,设备的订阅与发布等等:

  1. 修改配置文件;
    emq的配置文件在 emqx安装目录/etc/plugins
    vim emqx_web_hook.conf
    修改web.hook.api.url ,将其改为自定义的接口
    在这里插入图片描述
    注释掉不用的事件。具体事件类别可查看官网
    注意:修改完配置后重启生效

emqx 命令,在bin目录下

emqx start 启动
emqx_ctl status 检查运行状态
emqx uninstall 服务卸载
emqx stop 停止

  1. 接口;
/**
* @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";
}

测试结果
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值