我正在开发 CoAP 客户端代理功能。但是,我对规范及其工作方式感到困惑。我对以下内容感到困惑:
代理 URI 选项
1.1 如果设置了Proxy-URI选项,可以连接哪个coap服务器?
1.2 如果有Proxy-URI选项,CoAP请求消息是否应该包含URI-*选项?据我所知,应该包括 URI-* 选项。但是,在 libcoap 代码中跳过了 URI-* 选项。
代理方案选项
2.1 如果存在代理方案选项,如何构造 URI-* 选项?如果存在,是否应该跳过正常的 URI-* 选项?
我正在开发 CoAP 客户端代理功能。但是,我对规范及其工作方式感到困惑。我对以下内容感到困惑:
代理 URI 选项
1.1 如果设置了Proxy-URI选项,可以连接哪个coap服务器?
1.2 如果有Proxy-URI选项,CoAP请求消息是否应该包含URI-*选项?据我所知,应该包括 URI-* 选项。但是,在 libcoap 代码中跳过了 URI-* 选项。
代理方案选项
2.1 如果存在代理方案选项,如何构造 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 选项来决定采用哪个下一跳。转发的消息不再包含 Proxy-Scheme,而只包含 Uri-* 选项,与原始请求中的完全一样。