共计 2125 个字符,预计需要花费 6 分钟才能阅读完成。
随着物联网技术的倒退与遍及,越来越多的智能设施具备了网络连接与数据传输能力。
物联网场景中设施大多都是资源限制型的,比方 CPU、RAM、Flash、网络宽带等。尤其是由电池供电的设施,对传输协定的功耗以及带宽十分敏感,间接应用 TCP 和 HTTP 协定来实现设施与平台之间的数据交换无奈满足设施对低功耗的要求。
为了让这部分设施可能顺利接入网络,CoAP 协定应运而生。作为致力于为物联网各类场景提供数据连贯能力的全托管 MQTT 音讯服务,EMQX Cloud 也反对 CoAP 协定的设施接入,容许合乎某种定义的 CoAP 音讯格局向 EMQX Cloud 执行公布、订阅、和接管音讯等操作。
本文将介绍如何应用 EMQX Cloud 实现 CoAP 协定设施的接入。
CoAP 协定简介
因为物联网场景简单多样,设施端硬件条件、网络稳定性、流量限度、设施功耗以及设施连贯数量等多方面因素造成物联网设施的消息传递与传统互联网场景有着很大不同,也因而产生了多种物联网通信协定。
CoAP 协定网关作为一种在物联网世界的类 HTTP 的协定,应用在资源受限的物联网设施上,它的具体标准定义在 RFC 7252。
协定个性
CoAP 参考了很多 HTTP 的设计思路,同时也依据受限资源限度设施的具体情况改进了诸多设计细节,减少了很多实用的性能。如:
- 基于音讯模型
- 传输层基于 UDP 协定,反对受限设施
- 应用相似 HTTP 申请的申请 / 响应模型,HTTP 是文本格式,CoAP 为二进制格局,且比 HTTP 更加紧凑
- 反对双向通信
- 轻量、低功耗
- 反对牢靠传输,数据重传,块传输,确保数据牢靠达到
- 反对 IP 多播
- 反对察看模式
- 反对异步通信
市场情况
相比于 MQTT,CoAP 更加轻量、开销更低,在某些特定的设施和网络环境下更为适合,EMQX Cloud 以及局部私有云物联网平台都提供提供了 CoAP 接入能力。
CoAP 协定接入 EMQX Cloud
创立部署
新建部署,在 EMQX Cloud 部署页面,获取到公网连贯地址:120.77.x.x。
开明 CoAP 接入网关
CoAP 接入网关目前处于内测阶段,您能够提交工单开启接入能力。开明后 CoAP 接入网关地址是您的部署连贯地址,即 120.77.x.x,端口为 udp 5683。
连贯到部署、公布订阅音讯
libcoap 是一个十分易用的 CoAP 客户端库,此处咱们应用它作为 CoAP 客户端来测试 EMQX Cloud CoAP 接入网关的性能。
装置部署可参考如下示例。
git clone http://github.com/obgm/libcoap
cd libcoap
./autogen.sh
./configure --enable-documentation=no --enable-tests=no
make
1、公布示例
咱们应用 libcoap 往 EMQX Cloud 部署公布一条音讯:
- 主题名称为:”topic1″
- Client ID 为:”client1″
- 用户名为:”emqx”
- 明码为:”public”
- Payload 为:”hello,EMQX Cloud”
# CoAP 终端发送音讯 "hello EMQX Cloud",topic 为 topic1
./examples/coap-client -m put -e "hello,EMQX Cloud" "coap://120.77.x.x:5683/mqtt/topic1?c=client1&u=emqx&p=public"
接下来,咱们应用 MQTT X 订阅对应主题 topic1,即可看到音讯已胜利公布。
2、订阅示例
咱们应用 libcoap 订阅一个主题:
- 主题名称为:”topic1″
- Client ID 为:”client1″
- 用户名为:”emqx”
- 明码为:”public”
- Payload 为:”hello,EMQX Cloud”
接下来,咱们应用 MQTT X 发送 “hello,EMQX Cloud” 给 topic1
主题。
# CoAP 终端订阅 topic1 主题,-s 20 示意订阅维持 20 秒
./examples/coap-client -m get -s 20 "coap://120.77.x.x:5683/mqtt/topic1?c=client1&u=emqx&p=public"
在这期间,如果主题 topic1 上有音讯产生,libcoap 便会收到该条音讯。
小结
至此,咱们实现了应用 CoAP 协定网关接入 EMQX Cloud 的全副流程。
以后物联网协定出现多元化倒退,不同行业和场景实用不同的协定,在雷同的场景下也可能有多个协定可供选择,没有任何协定可能在市场上占有统治位置,各种协定之间存在肯定的互补效应。因而,要实现物联网设施和数据的互联互通,关键点并不在与协定的对立,而在于不同协定之间的互联互通、下层业务应用层协定的对立。CoAP 协定网关则为解决物联网设施数据连贯问题提供了新的可能性。而 EMQX Cloud 反对多协定接入,通过凋谢规范的物联网协定 MQTT、MQTT over WebSocket、CoAP/LwM2M 将数以亿计的物联网设施牢靠地连贯到 EMQX Cloud,让物联网数据施展出更大的价值。
版权申明:本文为 EMQ 原创,转载请注明出处。
原文链接:https://www.emqx.com/zh/blog/connecting-coap-devices-to-emqx-cloud