Appearance
CoAP连接通信
概述
CoAP(Constrained Application Protocol,受限应用协议)是一种专为物联网(IoT)设备和资源受限网络设计的应用层协议。CoAP协议适用在资源受限的低功耗设备上,尤其是NB-IoT的设备使用。
特点
序号 | 特点 | 说明 |
---|---|---|
1 | 轻量级 | CoAP是一种轻量级协议,旨在在资源受限的设备上运行。它的消息格式紧凑,减小了通信的开销,适用于低功耗设备和有限的网络带宽。 |
2 | 基于UDP | 基于UDP运行,使得更适用于无连接、低延迟和高效率的通信, |
3 | 类RESTful架构 | CoAP采用了REST(Representational State Transfer)架构的设计理念,使得它更容易与现有的Web架构集成。资源(例如传感器、执行器)通过URI标识,通过标准的HTTP方法(GET、POST、PUT、DELETE)进行访问和操作 |
4 | 低能耗 | CoAP协议被设计为在低功耗设备上运行,支持快速休眠和唤醒。它的轻量级特性和对触发式通信的支持有助于降低设备的能耗。 |
5 | 资源标识符 | 与Web技术相一致,使得资源定位和管理更加简单。 |
6 | 多种传输方式 | 可以通过不同的传输方式进行通信,包括原始UDP、DTLS(Datagram Transport Layer Security)、WebSockets等,提供了灵活性和适应性。 |
7 | 可扩展性 | 允许定义新的消息类型和选项,以满足不同应用场景的需求。 |
接入流程
开发端口:10087 测试端口:10085
- 认证设备,获取设备的token 设备认证请求:
POST /auth |
Host: ${YourEndpoint} |
Port: 5683 |
Accept: application/json or application/cbor |
Content-Format: application/json or application/cbor |
payload: {"reqid":"1713165827297","productKey":"8725dfbe93a64c5db1653ca766c036ce","deviceName":"sn1234或mac123456","timestamp":"1632445949000","sign":"4AC02E63D4D6E80020492B310CAF4C42","signMethod":"hmacmd5"} |
payload参数说明如下:
参数名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
reqid | String | 否 | 请求唯一标识。 不传默认使用当前时间戮。 |
productKey | String | 是 | 产品唯一标识。 |
deviceName | String | 是 | 产品下的设备唯一标识。请注意,这里的设备唯一标识,请使用设备管理平台预注册设备时约定使用的设备唯一信息,如设备的MAC地址、IMEI或SN码等。 |
timestamp | String | 否 | 当前时间的时间戳。 |
sign | String | 是 | 签名。 加签方法:将所有提交给服务器的参数(sign、signMethod除外)按照字母顺序排序,然后将参数和值依次拼接(无拼接符号)。通过signMethod指定的加签算法,使用产品的ProductSecret,对加签内容进行加签。 加签计算示例如下: hmac_md5(productSecret, deviceNamesn1234productKey8725timestamp163*)。 |
signMethod | String | 否 | 签名方法,目前支持hmacmd5、hmacsha1、hmacsha256,不传默认是hmacmd5。 |
返回结果示例::
json
{
"reqid":"1713165827297",
"code":200,
"data":"86f4f4230d9b4d7b9be9b3824a1f6646"
}
连接示例工具:

- 上报数据 上报数据请求:
POST /topic?${topic} |
Host: ${YourEndpoint} |
Port: 5683 |
Accept: application/json or application/cbor |
Content-Format: application/json or application/cbor |
payload: {your_data} |
上报数据payload参数说明:
参数名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
reqid | String | 是 | 请求唯一标识。 |
v | String | 是 | 协议版本号,目前协议版本号唯一取值为1 |
t | long | 否 | 当前时间的时间戳。 |
method | String | 是 | 请求方法相当于mqtt的topic。上报属性示例:tlink/${productKey}/${deviceName}/event/propertyReport/post,${productKey}和${deviceName}替换为实际的值 |
spec | String | 否 | 扩展功能的参数,其下包含各功能字段。平台可扩展,或可自行扩展,自行扩展的参数需在自定义解析模块自行解析 |
data | Object | 否 | 事件输出参数。如以上示例中,设置属性:{ "temperature": "30.5" }。 |
token | String | 是 | 设备认证时获取的token。 |
返回结果示例::
json
{
"reqid":"1713171753277",
"code":200,
"data":"86f4f4230d9b4d7b9be9b3824a1f6646"
}