proxy - 关于 CoAP 客户端代理功能
问题描述
我正在开发 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-* 选项,与原始请求中的完全一样。
推荐阅读
- php - 为什么我在循环中填充数组变量时为空?
- python - steamworks InitiateGameConnection() 中是否有类似的 python 函数?
- r - 为什么从 RStudio 运行脚本时遇到 R 致命错误
- mount - 使用 mtpmount 和 dokany 进行 MTP 热拔出 - 是否严格要求卸载?
- postgresql - 使用 Postgresql JSON 字段作为映射的实体的 Spring Boot JPA 投影
- matlab - MATLAB从VTK文件中读取数据使用
- linux - 不一致的 SSL 证书 // Linux 服务器
- haskell - 如何推断递归函数的类型?
- c# - C#遍历文件结构时如何判断所有线程或任务何时完成
- .net - RPA 中支持记录器、执行功能等特性/功能的底层技术是什么