使用 OT CLI 测试与受限应用协议 (CoAP) 资源的连接

查看 GitHub 上的源代码

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 服务器节点上,执行以下步骤:

  1. 启动 CoAP 代理。

    coap start
    Done
    
  2. 创建测试资源。

    coap resource test-resource
    Done
    

设置 CoAP 客户端

在 CoAP 客户端节点上,执行以下步骤:

  1. 启动 CoAP 代理:

    coap start
    Done
    
  2. 运行 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

  3. 您可以使用 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) 消息。

    typeconnon-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

68656c6c6f7468657265payload 值是转换为 ASCII 代码字节序列的字符串 hellothere