EMQ X - EmqxBroker CoAP协议数据接入测试及疑问
啥也不说,咱先上张图,等等。。。还有个抓包截图;
算了官方最大(卑微称[qu]赞[fu]),看看我们是怎样使用CoAP协议来连接EMQX的吧;
一、启动coap插件并使用代码测试;
1、 开启emqx-coap插件;可以直接在dashboard上点击启用按钮 ;(Win环境 推荐)
可以在PowerShell中使用命令开启 ./emqx_ctl plugins load emqx_coap(Linux环境 推荐)
2、此时emqx就可以接受指定请求格式的CoAP协议数据啦。格式详细请参考:https://github.com/emqx/emqx-coap
3、java连接emqx-coap,因为只能使用PUT请求,代码中注释的部分,是另外两种发送CoAP-PUT请求的例子,经测试都是可用的;
package com.daopin.project.CoapClient;
/**
* @Description: TODO(这里用一句话描述这个类的作用)
* @Author daopinz
* @Date 2020/6/9 14:04
*/
import com.daopin.project.mqtt.PubMsg;
import org.eclipse.californium.core.CoapClient;
import org.eclipse.californium.core.CoapResponse;
import org.eclipse.californium.core.Utils;
import org.eclipse.californium.core.coap.Request;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.net.URI;
import java.util.Date;
import static org.eclipse.californium.core.coap.MediaTypeRegistry.*;
public class CoAPSender {
private static final Logger logger = LoggerFactory.getLogger(CoAPSender.class);
public static void main(String[] args) throws Exception {
//创建一个资源请求资源,注意默认端口为5683
URI uri = new URI("coap://127.0.0.1:5683/mqtt/qdq02mzl6kvs/coap-server/uplinkMsg?c=coaps1&u=COAP&p=coap");
CoapClient client = new CoapClient(uri);
while (true) {
String payload = "hello, " + new Date().toString();
//设置PUT的内容和内容的类型TEXT_PLAIN
//CoapResponse response = client.put(payload, TEXT_PLAIN);
//client.useCONs();
//设置PUT的内容和内容的类型APPLICATION_OCTET_STREAM
//CoapResponse response = client.put(payload, APPLICATION_OCTET_STREAM);
Request request = Request.newPut();
request.setPayload("AAAA0000 "+new Date().toString());
CoapResponse response = client.advanced(request);
System.out.println(Utils.prettyPrint(response));
Thread.sleep(5000);
}
}
}
4、运行代码,结果;
我们的sub端也收到了订阅的数据;
抓包在前面已经贴出来了,可以参考看看。
二、总结:
1、正常CoAP协议请求数据应该是POST请求来注册,后面还有一系列GET请求等等。。。这样不知道是要修改emqx插件,还是怎样,暂无头绪
2、正常CoAP协议请求数据应该是payload在GET订阅设备资源后,设备主动上报的NON/CON消息中携带,但emqx-coap插件需要在PUT请求中携带payload,订阅端就能拿到这部分数据,这样其实是跟目前国内的物联网市场使用的华为海思芯片是不兼容的,这样理解不知是否正确,还请有这方面经验的大佬,不吝赐教!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具