一文解决 CoAP 协议设备与外部网络沟通难题

本文介绍了如何利用EMQX消息服务器解决CoAP协议在受限网络与外部网络通信的问题。EMQX支持两种CoAP接入方式,包括MQTT模式和PubSub模式,能对设备进行认证、权限管理,并作为信息交换中心。配置方面,EMQX支持非加密和加密通信,提供详细的配置示例。通过测试用例展示了如何使用libcoap进行CoAP的PubSub和MQTT模式测试。

CoAP 协议是一种支持在低功耗、低功率等受限设备间进行通信的物联网协议,这些设备往往都运行在受限网络中,因此 CoAP 协议设计得十分精炼, 同时采用 UDP 协议进行数据传输,所以能够很好的适应受限网络环境。 CoAP 通过类似于 HTTP 操作的方式,在受限设备组成的 M2M 网络中,对设备上抽象的资源进行操作,这样能够十分简洁、高效地实现受限设备间同步、 异步的信息交流。

CoAP 是专为受限硬件、环境而设计的通信协议,在受限网络中能够良好的工作,但如果受限网络需要和外部网络进行沟通,CoAP 则不能很好的适应。另外,因为 CoAP 设计时更多考虑的是 M2M 网络模型,所以 CoAP 缺乏对资源处理中心的支持(基于 CoAP 的 LwM2M 协议为此专门引入了资源的注册、资源的服务等概念)。

以上问题可以通过 EMQX 消息服务器得到很好的解决。本文就将介绍如何使用 EMQX 接入 CoAP 协议,实现 CoAP 协议设备与外部的沟通。

EMQX 的 CoAP 协议接入方式

对于需要和外部进行沟通的 CoAP 设备,使用 EMQX 作为消息中间件,可以很方便地实现以下功能:

  • 对设备进行认证,拒绝不可信设备的数据
  • 对资源进行权限管理,可以指定不同的设备对某个资源拥有不同的读/写权限
  • 可以作为不同网络 CoAP 设备间的信息传输中心
  • 可以作为其他应用,比如 CoAP 管理应用、数据分析应用和 CoAP 设备、网络间的接入中间件

EMQX 中提供了两种不同的 CoAP 接入方式,涵盖了大多数 CoAP 的业务场景,且接入简单,支持良好,不需对 CoAP 协议本身进行改动。而对原有的 CoAP 设备、应用,接入 EMQX 的成本也很小。

URL 模型

EMQX 通过 URL path 和 queryString 来实现对 CoAP 的接入,CoAP 接入时需要按照下面的规则组织 URL 模型:

coap 连接类型://Host:Port/模式/TopicName?c=客户端Id&u=用户名&p=密码

其中,coap 连接类型可以为:

  • coap:使用普通的 UDP 进行传输
  • coaps:启用安全传输层,关于如何启用 coaps (包括单向认证、双向认证),详细见加密通信配置

模式 目前有: MQTTPubSub 两种,具体区别将会在下文详细介绍。

TopicName : EMQX 中使用 Topic 作为 CoAP 中的资源标识符,一个 Topic 就代表一个资源对象, 而 Topic 可以为任意 UTF8 字符串,允许多个层级,比如 coap/ 、coap/test/queryString。

URL 中的 c、u、p 三个字段是必须的,其中:

  • c 代表客户端 ID,为任意字符串,理论上每个客户端 ID 都应该需要是唯一的
  • u 和 p 分别代码用户名和密码,需要在 EMQ X 的认证模块中预先设置好

MQTT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值