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

查看 GitHub 上的源代码

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

安全 CoAP 使用数据报传输层安全协议 (DTLS) 建立安全的端到端连接。

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

本指南介绍了一些基本任务,您可以使用一些更常用的安全 CoAP (coaps) 命令。

安全 CoAP 命令

如需查看安全 CoAP 命令列表,请输入 help

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

CLI 命令参考文档

如需了解所有命令的说明和语法,请参阅 CLI 命令参考文档。安全 CoAP 命令以 Coaps connect 的字母顺序开头。

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

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

配置 DTLS 密码套件

coaps CLI 提供了可与 PSK 密钥和 X.509 证书搭配使用的 pskx509 命令。如需查看命令语法和示例,请参阅 coaps pskcoaps x509

设置安全 CoAP 服务器

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

  1. 启动安全 CoAP 代理。

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

    coaps resource test-resource
    Done
    

设置安全 CoAP 客户端

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

  1. 启动安全 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 post

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

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

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

    字符串 hellothere 是在 typeconnon-con 时使用可选 payload 参数的示例。如需了解详情,请参阅 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 值是转换为 ASCII 代码字节序列的字符串 hellothere