我有点惊讶我无法找到关于此主题的任何内容。
假设两个参与者之间存在双工Web服务协议,比如A
和B
,其中双工意味着两个参与者都会公开其他参与者可以调用的一些Web服务。没有一个演员是浏览器,即两者上的代码都可以完全控制它在HTTP
上交换的数据。
可能的是,其中一个角色(A
)部署在一个设备后面,阻止另一个角色(B
)发起与前者的任何网络连接。演员A
仍然可以向B
发出HTTP请求。
要克服网络限制,让我们添加一个支持websocket连接的端点,A
建立与B
的连接,并使用该连接接收HTTP请求{{1}通常会发送,回复适当的HTTP响应。 HTTP协议的格式非常好,可以在没有太多额外封装的情况下以原始方式进行交换。
RFC 6455强烈建议使用B
(它被称为子协议)正确协商websockets中使用的应用程序协议。众所周知的协议是registered with IANA。
但是,我找不到任何指定使用反向HTTP的注册子协议。在Web套接字中使用原始Sec-WebSocket-Protocol
协议真的不常见,而是回归到其他(自定义)标准吗?我希望在websocket中看到HTTP
被贩运的原因是因为我已经有了一个可能不得不求助于使用websockets的actor的web服务标准,我不想指定操作两次。