那里有很多 websocket -> 套接字包装器(比如网络套接字 https://github.com/kanaka/websockify)但是有相反的可用吗?具体来说,我希望能够使用应用程序连接到 TCP 套接字,并将代理转换为 websocket 并转换为另一个 websocket 服务器。
从 WebSocket 客户端桥接到 TCP 服务器是一种通用解决方案,它将较低级别的 TCP 协议封装到较高级别的 WebSocket 协议中。它允许浏览器(或其他 websocket 客户端)与任意 TCP 服务器进行通信。请注意,客户端 (JavaScript) 应用程序仍然必须能够对 TCP 服务器所使用的协议进行解码/编码。
反向操作不是通用的,需要对从 TCP 客户端应用程序到网桥的消息进行特殊的帧处理,以便网桥知道如何对发送到 TCP 服务器的 WebSocket 消息进行编码。 WebSockets 是基于消息的传输,而 TCP 是较低级别的流传输。 TCP 传输层在协议本身中没有消息的概念,因此必须在高层处理。换句话说,您必须做几乎与直接在应用程序中实现 WebSocket 客户端一样多的工作才能使 TCP 客户端应用程序与桥接应用程序进行通信。实际上,直接实现可能要少一些,因为已经有适用于大多数流行语言的 WebSocket 客户端库。
如果不更改客户端和网桥(以添加消息边界和操作码信息),您将无法通过网桥将预先存在的 TCP 客户端连接到现有的 WebSocket 服务器,否则您将需要一个忽略 WebSiocket 的特殊 WebSocket 服务器消息边界并将传入数据视为流(消息解析在更高层处理)。
也许您可以给出一个您认为这可能有用的用例?
免责声明:我做了websockify。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)