在这一节我们将 CoAP 协议接入 IotHub,IotHub 的 CoAP 包含以下功能:
- 允许设备用 CoAP 协议接入,并上传数据和状态;
- DeviceSDK 仍然需要向设备应用屏蔽底层的协议细节;
- CoAP 设备使用和 MQTT 设备同样的认证和权限系统。
由于我只建议用 CoAP 来做数据上传功能,所以在这里只实现上行数据的功能。
EMQ X 的 CoAP 插件
EMQ X 提供一个 emqx_coap 插件来提供 CoAP 协议的接入,这个插件其实是一个 CoAP Gateway,和上一节提到的 CoAP HTTP Gateway 类似,不过它会把 CoAP 请求按照一定规则转换成 MQTT 的 Publish/Subscribe:
以下的 CoAP 请求会被转换成 MQTT Publish:
方法: PUT URL: coap://<host>:<port>/mqtt/<topic>?c=<client_id>&u=<username>&p=<password>
例如 CoAP 请求 PUT coap://127.0.0.1:5683/mqtt/topic