关于 CoAP 客户端代理功能

Regarding CoAP Client proxy funtionality

我正在开发 CoAP 客户端代理功能。但是,我对规范及其工作原理感到困惑。我感到困惑的是:

  1. 代理 URI 选项

    1.1 如果设置了Proxy-URI选项,可以连接到哪个coap服务器?

    1.2 如果有Proxy-URI选项,CoAP请求消息是否应该包含URI-*选项?据我所知,应该包括 URI-* 选项。但是,URI-* 选项在 libcoap 代码中被跳过。

  2. 代理方案选项

    2.1 如果有proxy-scheme选项,如何构造URI-*选项?如果存在,是否应该跳过正常的 URI-* 选项?

ad 1.2:Proxy-Uri 和其他 Uri-* 选项是互斥的。可以有 Proxy-Uri 或 Uri-* 选项的任意组合。将 Proxy-Uri 选项视为 (Proxy-Scheme, Uri-Host, Uri-Port, ...) 的替代表示,并尽可能避免使用 Proxy-Uri。

ad 2: Proxy-Scheme的存在只是表示客户端要求转发这个请求,转发时使用什么协议(CoAP-over-UDP?CoAP-over-TCP?甚至是HTTP在交叉代理中?)。对于大多数代理情况,您可以查看 Uri-Host 选项来决定采用哪个下一跃点。转发的消息不再包含代理方案,只包含 Uri-* 选项,与原始请求中的完全一样。