EMQ X开源版使用
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开源版使用相关推荐
- 基于emq x开源版实现服务重启后主题和消息恢复的完整方案(二)
emqx_restart_resume 用于emqx开源版 服务重启后恢复原订阅主题和持久化数据 问题 开源版emq在服务重启后原订阅的主题会清空,在客户端保持原clientId,保持原session ...
- 基于emq x开源版实现服务重启后主题和消息恢复的完整方案
emqx_restart_resume 用于emqx开源版 服务重启后恢复原订阅主题和持久化消息 问题: 开源版emq在服务重启后原订阅的主题会清空,在客户端保持原clientId,保持原sessio ...
- 英特尔开源版HE-Transformer,对于隐私数据AI终于上手了!
正如所有数据科学家畅言的那样,数据集是人工智能的生命线,这对所有处理个人身份信息(如医疗保健)的行业构成了固有的挑战,但令人欣喜的是,对于模拟训练的匿名加密方法已经取得了令人鼓舞的进展. 2018年1 ...
- 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 ...
- Linux下部署开源版“禅道”项目管理系统
2019独角兽企业重金招聘Python工程师标准>>> 1.开源版安装包下载 [root@iZbp ~]# wget http://dl.cnezsoft.com/zentao/9. ...
- FineUI(开源版)v4.2.2发布(8年125个版本,官网示例突破300个)!
开源版是 FineUI 的基石,从 2008 年至今已经持续发布了 120 多个版本,拥有会员 15,000 多位,捐赠会员达到 1,200 多位. FineUI(开源版)v4.2.2 是 8 年 ...
- FineUI(开源版)v6.0中FState服务器端验证的实现原理
前言 1. FineUI(开源版)是完整开源,最早发起于 2008-04,下载全部源代码:http://fineui.codeplex.com/ 2. 你可以通过捐赠作者来支持FineUI(开源版)的 ...
- 【开源】接口管理平台eoLinker AMS 开源版3.1.5同步线上版!免费增加大量功能!...
概要:eoLinker是一个免费开源的针对开发人员需求而设计的接口管理工具,通过简单的操作来帮助开发者进行接口文档管理.接口自动化测试.团队协作.数据获取.安全防御监控等功能,降低企业的接口管理成本, ...
- DotNetTextBoxV3.0在线编辑器控件Ver3.4.1 Open Source开源版(附商业试用版下载)
英文名:DotNetTextBox V3.0 WYSWYG Web Control For Asp.Net2.0/3.5 Open Source 中文名:DotNetTextBox V3.0 所见即所 ...
- java开发者工具开源版_JArchitect对Java开源贡献者免费
java开发者工具开源版 JArchitect是用于Java代码库的静态分析工具,它提供交互式GUI和HTML报告,用于查找代码中过于复杂或有问题的区域,执行分析以重构并比较随时间的变化. 在版本3中 ...
最新文章
- 到底是什么特征影响着CNN的性能?
- 科研找到属于自己的思想
- java时间比较_广州java培训大概多久时间可以毕业
- vim 批量注释代码
- hibernate mysql id 自增长 注解_hibernate Mysql 自增长 注解配置,表无关联的注解方式关联查询...
- windows系统SSH证书设置
- LNMP环境下搭建wordpress
- 谷歌安装Restlet Client插件
- python pdf转word并保持原有的格式_将PDF转换为Word文档后,格式即可解决问题
- cad插入块_「AutoCAD之属性块」别怕难,从零做起,制作属性块只需6步走
- php kindeditor远程图片上传,kindeditor 远程图片本地化,远程图片下载到本地自动更换图片路径...
- C#上位机与三菱PLC通讯
- java编程思想之并发(线程之间的协作)
- 金融银行软件测试超大型攻略,最受欢迎的金融银行大揭秘附面试题
- NHANES数据库的介绍及使用(二)
- Oracle官方网站下载地址
- websocket前端向后端传数据时出现Buffer
- 用python的列表构建一棵树
- 酷派手机COOLPAD5380CA动态权限允许无法点击
- DSL 领域特定语言