使用EMQX-CoAP插件接收硬件设备通过CoAP协议发送的数据

emqx提供了emqx-coap插件,可以用来接收CoAP协议的数据。
官方文档emqx-coap插件地址:https://github.com/emqx/emqx-coap
官方文档介绍:
emqx-coap是EMQ X Broker的CoAP网关。它将CoAP消息转换为MQTT消息,并使CoAP客户端和MQTT客户端之间的通信成为可能。
开启coap插件的方式有两种,一种是 直接在dashboard控制台打开。
在这里插入图片描述
另一种是在命令行加载该插件
./bin/emqx_ctl plugins load emqx_coap
coap默认端口是5683。
开启coap插件后,官方推荐使用libcoap作为客户端。
libcoap是一个优秀的coap库,它有一个简单的客户端工具。建议使用libcoap作为coap客户端。
github地址:https://github.com/obgm/libcoap
clone下来以后进行编译安装
git clone http://github.com/obgm/libcoap
cd libcoap
./autogen.sh
./configure --enable-documentation=no --enable-tests=no
make
如果在执行./autogen.sh时报错,提示缺少工具,请安装autoconf 和 libtool。
yum install autoconf -y
yum install libtool -y
编译成功后,会发现example文件夹下多了几个可执行文件。
进入example文件夹:
发布示例:
./coap-client -m put -e 1234 “coap://127.0.0.1/mqtt/topic1?c=client1&u=tom&p=secret”
此时凡是订阅topic1的MQTT或者CoAP客户端都能收到发布的1234这条消息。
订阅示例:
./coap-client -m get -s 10 “coap://127.0.0.1/mqtt/topic1?c=client1&u=tom&p=secret”
此时如果任何mqtt客户端或coap客户端向“topic1”发送消息,你都可以收到。
注意:官方文档明确说明emq-coap网关不接受POST和DELETE请求。
使用MQTT客户端向Topic1发送消息:
使用EMQX-CoAP插件接收硬件设备通过CoAP协议发送的数据_第1张图片
CoAP客户端发布消息:
使用EMQX-CoAP插件接收硬件设备通过CoAP协议发送的数据_第2张图片

你可能感兴趣的:(使用EMQX-CoAP插件接收硬件设备通过CoAP协议发送的数据)