1 下载

进入官网

根据自己服务期的类型选择


我这里用的是centos6,用的是zip解压进行安装,选择完之后下面会有具体的安装步骤


根据步骤进行安装。

完了开放18083和1883端口

就可以访问控制台了

http://ip:18083/


默认用户名 admin,密码 public

修改密码

emqx_ctl admins passwd admin 新密码

2 设备监听

使用EMQX的WEB_HOOK进行设备监听

配置 安装目录/etc/plugins/emqx_web_hook.conf

修改web.hook.api.url ,将其改为自定义的接口
开放需要监听的事件

3 接收监听事件并记录设备状态

@Slf4j
@Api(tags = "设备相关")
@RestController
@RequestMapping("/device")
public class DeviceController {@PostMapping("/webHook")@ApiOperation("网页回调")public CommonResponse<String> onWebHook(@RequestBody Map<String, String> param) {log.info("设备回调");if (MapUtils.isNotEmpty(param)) {param.forEach((k, v) -> log.info("key:{} value:{}", k, v));}String action = param.getOrDefault("action", "");if (StringUtils.isNotBlank(action)) {MqttClient client = new MqttClient();client.setClientid(param.get("clientid"));client.setUsername(param.get("username"));client.setNode(param.get("node"));switch (action) {case "client_connected":// 成功连接client.setState(1);client.setOnlineAt(DateUtil.currentDateTime());saveClientState(client);break;case "client_disconnected": // 断开连接client.setState(0);client.setOfflineAt(DateUtil.currentDateTime());saveClientState(client);break;case "message_publish": // 发布消息log.info("发布消息:{}", param.getOrDefault("payload", ""));break;default:break;}}return CommonResponse.success();}// 设备状态写入数据库的实现private void saveClientState(MqttClient client) {if (StringUtils.isBlank(client.getUsername())) {return;}MqttClient find = clientMapper.getByUsername(client.getUsername());if (Objects.isNull(find)) {client.setCreated(DateUtil.currentDateTime());clientMapper.insert(client);} else {find.setClientid(client.getClientid());find.setUsername(client.getUsername());find.setNode(client.getNode());find.setState(client.getState());if (!Objects.isNull(client.getOnlineAt())) {find.setOnlineAt(client.getOnlineAt());}if (!Objects.isNull(client.getOfflineAt())) {find.setOfflineAt(client.getOfflineAt());}clientMapper.updateById(find);}}
}

参考文献

https://docs.emqx.cn/broker/v4.3/#%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%A8
web-hook
事件参数
https://www.freesion.com/article/9988673375/

EMQ X开源版使用相关推荐

  1. 基于emq x开源版实现服务重启后主题和消息恢复的完整方案(二)

    emqx_restart_resume 用于emqx开源版 服务重启后恢复原订阅主题和持久化数据 问题 开源版emq在服务重启后原订阅的主题会清空,在客户端保持原clientId,保持原session ...

  2. 基于emq x开源版实现服务重启后主题和消息恢复的完整方案

    emqx_restart_resume 用于emqx开源版 服务重启后恢复原订阅主题和持久化消息 问题: 开源版emq在服务重启后原订阅的主题会清空,在客户端保持原clientId,保持原sessio ...

  3. 英特尔开源版HE-Transformer,对于隐私数据AI终于上手了!

    正如所有数据科学家畅言的那样,数据集是人工智能的生命线,这对所有处理个人身份信息(如医疗保健)的行业构成了固有的挑战,但令人欣喜的是,对于模拟训练的匿名加密方法已经取得了令人鼓舞的进展. 2018年1 ...

  4. DotNetTextBoxV3.0在线编辑器控件Ver3.4.2 Open Source开源版

    英文名:DotNetTextBox V3.0 WYSWYG Web Control For Asp.Net2.0/3.0/3.5 Open Source 中文名:DotNetTextBox V3.0  ...

  5. Linux下部署开源版“禅道”项目管理系统

    2019独角兽企业重金招聘Python工程师标准>>> 1.开源版安装包下载 [root@iZbp ~]# wget http://dl.cnezsoft.com/zentao/9. ...

  6. FineUI(开源版)v4.2.2发布(8年125个版本,官网示例突破300个)!

    开源版是 FineUI 的基石,从 2008 年至今已经持续发布了 120 多个版本,拥有会员 15,000 多位,捐赠会员达到 1,200 多位.   FineUI(开源版)v4.2.2 是 8 年 ...

  7. FineUI(开源版)v6.0中FState服务器端验证的实现原理

    前言 1. FineUI(开源版)是完整开源,最早发起于 2008-04,下载全部源代码:http://fineui.codeplex.com/ 2. 你可以通过捐赠作者来支持FineUI(开源版)的 ...

  8. 【开源】接口管理平台eoLinker AMS 开源版3.1.5同步线上版!免费增加大量功能!...

    概要:eoLinker是一个免费开源的针对开发人员需求而设计的接口管理工具,通过简单的操作来帮助开发者进行接口文档管理.接口自动化测试.团队协作.数据获取.安全防御监控等功能,降低企业的接口管理成本, ...

  9. DotNetTextBoxV3.0在线编辑器控件Ver3.4.1 Open Source开源版(附商业试用版下载)

    英文名:DotNetTextBox V3.0 WYSWYG Web Control For Asp.Net2.0/3.5 Open Source 中文名:DotNetTextBox V3.0 所见即所 ...

  10. java开发者工具开源版_JArchitect对Java开源贡献者免费

    java开发者工具开源版 JArchitect是用于Java代码库的静态分析工具,它提供交互式GUI和HTML报告,用于查找代码中过于复杂或有问题的区域,执行分析以重构并比较随时间的变化. 在版本3中 ...

最新文章

  1. 到底是什么特征影响着CNN的性能?
  2. 科研找到属于自己的思想
  3. java时间比较_广州java培训大概多久时间可以毕业
  4. vim 批量注释代码
  5. hibernate mysql id 自增长 注解_hibernate Mysql 自增长 注解配置,表无关联的注解方式关联查询...
  6. windows系统SSH证书设置
  7. LNMP环境下搭建wordpress
  8. 谷歌安装Restlet Client插件
  9. python pdf转word并保持原有的格式_将PDF转换为Word文档后,格式即可解决问题
  10. cad插入块_「AutoCAD之属性块」别怕难,从零做起,制作属性块只需6步走
  11. php kindeditor远程图片上传,kindeditor 远程图片本地化,远程图片下载到本地自动更换图片路径...
  12. C#上位机与三菱PLC通讯
  13. java编程思想之并发(线程之间的协作)
  14. 金融银行软件测试超大型攻略,最受欢迎的金融银行大揭秘附面试题
  15. NHANES数据库的介绍及使用(二)
  16. Oracle官方网站下载地址
  17. websocket前端向后端传数据时出现Buffer
  18. 用python的列表构建一棵树
  19. 酷派手机COOLPAD5380CA动态权限允许无法点击
  20. DSL 领域特定语言

热门文章

  1. 解决redis 配置文件设置密码不生效的问题
  2. 火狐浏览器自动安装xpi扩展
  3. 全国基础地理数据库数据预处理
  4. 装配区5s管理制度推行办法
  5. 短视频源码应该优化的六个方面
  6. SVM——支持向量回归(SVR)
  7. 【音频处理】WAV 文件格式分析 ( 逐个字节解析文件头 | 相关字段的计算公式 )
  8. 天津大学材料与化工考研考情与难度、参考书及上岸前辈备考经验
  9. 层次分析法(AHP)原理以及应用
  10. pycharm下django实战