安装emqx
emqx 官方文档:https://docs.emqx.io/broker/latest/cn/
部署到centos
安装:
curl https://repos.emqx.io/install_emqx.sh | bash
配置emqx端口号:18083
华为云平台:
本地centos:
开放18083端口
firewall-cmd --zone=public --add-port=18083/tcp --permanent
关闭18083端口
firewall-cmd --zone=public --remove-port=18083/tcp --permanent
配置立即生效
firewall-cmd --reload
还需要开通mqtt1883端口号,emqx的接收到的数据均可以通过mqtt转发
启动emqx
$ emqx start
EMQ X v4.0.0 is started successfully!
$ sudo systemctl start emqx
EMQ X v4.0.0 is started successfully!
$ sudo service emqx start
EMQ X v4.0.0 is started successfully!
查看是否启动成功
EMQ X 正常启动:
$ emqx_ctl status
Node 'emqx@127.0.0.1' is started
emqx 4.0.0 is running
EMQ X 未能正常启动:
$ emqx_ctl status
Node 'emqx@127.0.0.1' not responding to pings。
到这里emqx已经安装完成
emqx 使用
Dashboard
用浏览器打开下面链接:
http://xx.xx.xx.xx:18083 “xx.xx.xx.xx为服务器ip”
user/pawd:admin/public
在插件里面可以看到emqx自带的一些插件,可以直接在界面内开启。
注:如果开启一些通讯插件需要服务器开通对应的端口号
EMQX_LWM2M插件启用
- 在Dashboard界面的插件里面启动emqx_lwm2m插件
2. 服务器开启Lwm2m:5683端口号:
云服务器:
本地centos:
firewall-cmd --zone=public --add-port=5683/udp --permanent
插件源码:https://github.com/emqx/emqx-lwm2m
插件配置文件路径:etc/plugins/emqx_lwm2m.conf
EMQX_LWM2M 测试
wakaama客户端测试工具
下载地址:https://github.com/eclipse/wakaama
编译:
wakaama项目采用cmake作为项目构建工具,如何引用项目的CMakeLists.txt,可以参照在/example下的各个项目的CMakeLists.txt是如何编写的。需要注意的是,为了不破坏原有的项目结构,推荐采用外部构建的方式
# 在wakaama之外新建你自己的项目目录,假设为project
cd project
# 注意替换变量为wakaama项目的所在位置,以编译server为例
# 将会在project目录下生成中间文件
cmake ${wakaama_base_dir}/example/client
make
# 产生的二进制文件名,可以参看example/server/CMakeLists.txt的PROJECT指令的参数
运行:
./lwm2mclient -n ep1 -h 127.0.0.1 -p 5683 -4
-n 客户端名字
-h 主机ip
-p 端口号
-4 IPV4
正常运行:
在Dashboard界面可以看到客户端已经连接,如下图:
使用mqtt工具发送lwm2m命令
发送主题:lwm2m/{?EndpointName}/dn
wakaama客户端接收到数据,如下图:
接收到discover命令,客户端会上报所有object id/resource id,lwm2m服务器封装成json转发给mqtt客户端
Lwm2m 与 mqtt
emqx_lwm2m插件会将收到的lwm2m协议数据包装成mqtt的json发送给mqtt client,同理mqttclient下发的json数据也会通过插件解析成lwm2m协议格式发送给lwm2m客户端。
主题说明:
lwm2m to mqtt :lwm2m/{?EndpointName}/up/resp
,lwm2m/{?EndpointName}/up/notify
mqtt to lwm2m:lwm2m/{?EndpointName}/dn
详细信息参考官网说明:https://github.com/emqx/emqx-lwm2m