那里有很多websocket - >套接字包装器(比如websockify)但是有相反的可用吗?具体来说,我希望能够使用应用程序连接到TCP套接字,并将代理转换为websocket并转移到另一个websocket服务器.
从WebSocket客户端到TCP服务器的桥接是一种通用解决方案,它将较低级别的TCP协议封装到更高级别的WebSocket协议中.它允许浏览器(或其他websocket客户端)与任意TCP服务器通信.请注意,客户端(JavaScript)应用程序仍必须能够解码/编码TCP服务器所说的协议.
反向操作不是通用的,需要从TCP客户端应用程序到桥接器的特殊消息框架,以便桥接器知道如何将WebSocket消息编码到TCP服务器.WebSockets是基于消息的传输,而TCP是较低级别的流传输.TCP传输层在协议本身中没有消息的概念,因此必须在高层处理.换句话说,您将不得不做几乎同样多的工作来使您的TCP客户端应用程序与桥接应用程序通信,因为它将直接在您的应用程序中实现WebSocket客户端.实际上,直接实现它可能更少,因为已经有大多数流行语言的WebSocket客户端库可用.
您将无法通过网桥将预先存在的TCP客户端连接到现有的WebSocket服务器而无需更改客户端和网桥(添加消息边界和操作码信息),或者您将需要一个忽略WebSiocket的特殊WebSocket服务器消息边界并将传入的数据视为流(在更高层处理消息解析).
也许您可以给出一个用例,您认为这可能有用吗?
免责声明:我做了websockify.
小智 6
我不确定您在寻找什么,但如果将来对某人有帮助,我会写下我为解决问题所做的工作。
我的问题: 我希望能够在我的 Web 应用程序的服务器上托管 noVNC,并且我希望非 websocket vnc 服务器能够在不使用 websockify 的情况下理解它。
我的解决方案: 我使用ws-tcp-bridge node.js 模块来桥接 websocket 端口<--lport>,noVNC 客户端将连接到 vnc tcp 服务器的主机。
示例: 这是通过从 vncserver 的机器运行以下命令来实现的:
ws-tcp-bridge --method=ws2tcp --lport=5555 --rhost=127.0.0.1:5902
这样我就能够在端口上托管一个非 websocket vncserver5902并通过端口上的 noVNC 与它连接5555。
尚未对此进行过多测试,但在x11vnc vnc 服务器上运行良好。
| 归档时间: |
|
| 查看次数: |
11594 次 |
| 最近记录: |