使用 OT CLI 测试与安全 CoAP 资源的连接

<ph type="x-smartling-placeholder"></ph> 在 GitHub 上查看源代码

OpenThread 同时提供安全 CoAP 服务器和客户端功能,使设备能够 连接到安全 CoAP 服务器上的资源,并观察每个资源 当前状态的变化

Secure CoAP 使用数据报传输层安全协议 (DTLS) 来建立 进行连接

CLI 中提供的安全 CoAP 代理可以充当安全 CoAP 客户端或安全 CoAP 服务器。

本指南介绍了一些使用较常见的 Secure CoAP (coaps) 命令的基本任务。

安全 CoAP 命令

如需查看 Secure CoAP 命令的列表,请输入 help

coaps help
connect
delete
disconnect
get
isclosed
isconnactive
isconnected
post
psk
put
resource
set
start
stop
x509
Done

CLI 命令参考

有关所有命令的说明和语法,请参阅 CLI 命令参考。 Secure CoAP 命令按字母顺序开头为 coaps connect

安全 CoAP 服务器和客户端命令用法示例

此示例使用基本的 CLI 命令启动安全 CoAP 服务器和客户端, 在安全 CoAP 服务器上创建测试资源,并安装安全 CoAP 客户端 与资源交互示例数据仅作说明之用。

配置 DTLS 加密套件

coaps CLI 提供了 pskx509 命令,可用于 PSK 密钥和 X.509 证书。 有关命令语法和示例,请参阅 coaps pskcoaps x509

设置安全 CoAP 服务器

在安全 CoAP 服务器节点上,执行以下步骤:

  1. 启动 Secure CoAP 代理。

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

    coaps resource test-resource
    Done
    

设置安全 CoAP 客户端

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

  1. 启动 Secure CoAP 代理:

    coaps start
    Done
    
  2. 运行 connect 命令以初始化与对等设备的 DTLS 会话:

    coaps connect fdde:ad00:beef:0:9903:14b:27e0:5744
    Done
    coaps connected
    
  3. 运行 get 命令可获取有关资源的信息:

    coaps get test-resource
    Done
    coaps response from fdde:ad00:beef:0:9903:14b:27e0:5744 with payload: 68656c6c6f576f726c6400
    

    服务器响应的最后一部分是 with payload:,后跟 所有载荷字节(采用十六进制数字格式)。在本示例中, with payload: 68656c6c6f576f726c6400 指示当前载荷 是十六进制值 68656c6c6f576f726c6400,该值会转换为字符串 helloWorld。如需详细了解如何使用 payload 选项,请参阅 coaps 博文

  4. 您可以使用 put 命令修改资源:

    coaps put test-resource con hellothere
    Done
    coaps response from fdde:ad00:beef:0:9903:14b:27e0:5744
    

    在此示例中,con 表示您需要一条可靠的消息, 使用可确认消息 (con) 获取,发送到安全 CoAP 服务器。 默认设置是发送一条不可确认 (non-con) 的消息。

    字符串 hellothere 是使用可选 payload 的示例 参数(当 typeconnon-con 时)。 如需了解详情,请参阅 coaps put

    服务器通过其 IPv6 地址进行响应,表明请求已处理。

发送到安全 CoAP 服务器的响应

在服务器上,此示例的输出类似于以下内容:

coaps request from fdde:ad00:beef:0:9e68:576f:714c:f395 GET
coaps response sent
coaps request from fdde:ad00:beef:0:9e68:576f:714c:f395 PUT with payload: 68656c6c6f7468657265
coaps response sent

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