OpenThread 提供 CoAP 服务器和客户端功能,使设备能够连接到 CoAP 服务器上的资源并观察每个资源的当前状态变化。CLI 中提供的 CoAP 代理可以充当 CoAP 客户端,也可以充当服务器。
CoAP 命令
如需查看 coap
命令列表,请输入 help
:
coap help
help
cancel
delete
get
observe
parameters
post
put
resource
set
start
stop
Done
CLI 命令参考文档
如需了解所有命令的说明和语法,请参阅 CLI 命令参考文档。coap
命令以 coap cancel 的字母顺序开头。
CoAP 服务器和客户端命令用法示例
本示例使用基本 CLI 命令来启动 CoAP 服务器和客户端,在 CoAP 服务器上创建测试资源,然后让 CoAP 客户端与该资源进行交互。示例数据仅作说明之用。
设置 CoAP 服务器
在 CoAP 服务器节点上,执行以下步骤:
启动 CoAP 代理。
coap start
Done创建测试资源。
coap resource test-resource
Done
设置 CoAP 客户端
在 CoAP 客户端节点上,执行以下步骤:
启动 CoAP 代理:
coap start
Done运行
get
命令以获取有关资源的信息:coap get fdde:ad00:beef:0:d395:daee:a75:3964 test-resource
Done coap response from [fdde:ad00:beef:0:2780:9423:166c:1aac] with payload: 30服务器
response
的最后一部分是术语with payload:
,后跟十六进制数字格式的所有载荷字节。因此,在示例中,with payload: 30
表示资源的当前载荷设置为一个字节的载荷信息,并采用 0x30 十六进制值。如需详细了解如何使用payload
选项,请参阅 Coap post。您可以使用
put
命令修改资源:coap put fdde:ad00:beef:0:2780:9423:166c:1aac test-resource con hellothere
Done coap response from [fdde:ad00:beef:0:2780:9423:166c:1aac]在此示例中,
con
表示您要向 CoAP 服务器发送使用可确认消息 (con
) 获取的可靠消息。默认设置为发送不可确认 (non-con
) 消息。当
type
为con
或non-con
时,字符串hellothere
就是使用可选payload
参数的示例。如需了解详情,请参阅 coap put。服务器会使用其 IPv6 地址进行响应,以表明请求已处理。
发送到 CoAP 服务器的响应
在服务器上,此示例的输出类似于以下内容:
coap request from [fdde:ad00:beef:0:b3:e3f6:2dcc:4b79] GET coap response sent coap request from [fdde:ad00:beef:0:b3:e3f6:2dcc:4b79] PUT with payload: 68656c6c6f7468657265 coap response sent
68656c6c6f7468657265
的 payload
值是转换为 ASCII 代码字节序列的字符串 hellothere
。