docker创建EMQX,在EMQX上开启lwm2m协议插件,并测试与lwm2m客户端进行通讯

12 篇文章 0 订阅

1.docker创建EMQX

docker run -d --name emqx --restart=always --net host  emqx/emqx

2.访问EMQX后台管理界面

 http://ip地址:18083/

 

3.设置为页面语言为中文

4.开启lwm2m插件

 

 emqx_lwm2m插件会将收到的lwm2m协议数据包装成mqtt的json发送给mqtt客户端,同理mqtt客户端下发的json数据也会通过插件解析成lwm2m协议格式发送给lwm2m客户端。
主题说明:
lwm2m to mqtt: lwm2m/{?EndpointName}/up/resp,lwm2m/{?EndpointName}/up/notify
mqtt to lwm2m: lwm2m/{?EndpointName}/dn

详见:GitHub - emqx/emqx-lwm2m: EMQ X LwM2M Gateway

5.下载MQTT测试工具MQTTX

下载地址为:https://github.com/eclipse/leshan/releaseshttps://github.com/eclipse/leshan/releases

6.下载leshan源代码(java语言编写的lwm2m客户端、引导、服务端程序)

       git仓库地址为:

https://github.com/eclipse/leshan.githttps://github.com/eclipse/leshan.git如果不是本机部署EMQX,则修改  src/main/java/org/eclipse/leshan/client/demo/cli/LeshanClientDemoCLI.java 类      

 7.启动src/main/java/org/eclipse/leshan/client/demo/LeshanClientDemo.java类。

        然后就能在EMQX的“客户端”界面看到连接的lwm2m客户端

点击客户端名称进入查看客户端设备详情

8.使用MQTTX工具连接EMQX的mqtt borker并订阅lwm2m客户端注册和更新消息的主题。

连接mqtt borker。

 订阅lwm2m客户端注册和更新消息的主题,在第7步中可以在EMQX管理界面上看到lwm2m的客户端id为“DESKTOP-0QL”,所以订阅的主题为:

lwm2m/DESKTOP-0QL/up/resp

lwm2m/DESKTOP-0QL/up/notify

发送主题为:lwm2m/DESKTOP-0QL/dn

9.测试

当重启lwm2m客户端时候就可以在MQTTX测试工具上看到lwm2m客户端的注册信息。

然后发送read或者write

read

{
  "reqID": "123",
  "msgType": "read",
  "data": {
    "path": "/1/0/1"
  }
}

write 

{
  "reqID": "123",
  "msgType": "write",
  "data": {
    "path": "/1/0/1",
    "type": "Integer",
    "value": 333
  }
}

就可以收到lwm2m客户端反馈的消息。

其他write、boserve等等的格式详见:GitHub - emqx/emqx-lwm2m: EMQ X LwM2M Gateway

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在 Docker 上安装 EMQ X 并进行初始化的步骤: 1. 首先安装 Docker,可以参考 Docker 官方文档进行安装。 2. 从 Docker Hub 上拉取 EMQ X 镜像,并运行容器。运行以下命令: ``` docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 -e EMQX_LOADED_PLUGINS="emqx_management,emqx_recon,emqx_retainer,emqx_dashboard" emqx/emqx:latest ``` 这里我们指定容器名称为 emqx,将容器内部的端口映射到宿主机上,并且指定了 EMQ X 需要加载的插件。 3. 等待 EMQ X 启动完成,可以通过以下命令查看容器日志: ``` docker logs -f emqx ``` 如果看到类似以下日志,则表示 EMQ X 已经启动成功: ``` 2021-10-12 02:57:45.998 [info] Application emqx started on node emqx@172.17.0.2 ``` 4. 打开浏览器,访问 http://localhost:18083,进入 EMQ X Dashboard 界面。默认的用户名和密码均为 admin。 5. 在 EMQ X Dashboard 界面中,可以进行初始化配置。例如,可以添加一个 MQTT 用户,在「Access Control」->「User & ACL」中点击「Add」按钮,输入用户名和密码,并勾选「Subscribe」和「Publish」权限。然后在「Access Control」->「Rule & ACL」中点击「Add」按钮,输入 Topic 和 ACL 规则,例如可以输入以下规则: ``` Rule: clientid='*', access='subscribe', topic='#' ACL: allow ``` 这里表示所有的 MQTT 客户端都可以订阅任意 Topic。 6. 最后,在应用程序中连接到 EMQ X。可以使用任意支持 MQTT 协议客户端库来连接 EMQ X。例如,使用 Eclipse Paho MQTT 客户端库来连接 EMQ X,可以使用以下代码: ``` import org.eclipse.paho.client.mqttv3.*; public class MqttExample { public static void main(String[] args) throws Exception { String broker = "tcp://localhost:1883"; String clientId = "example-client"; String username = "admin"; String password = "public"; MqttClient mqttClient = new MqttClient(broker, clientId); mqttClient.connect(); mqttClient.subscribe("#", 0); mqttClient.publish("test", "Hello, World".getBytes(), 0, false); mqttClient.disconnect(); } } ``` 运行以上代码,就可以连接到 EMQ X,并订阅任意 Topic 和发布消息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值