这里有很多websocket - >套接字包装器(比如websockify),但是那里有相反的东西吗?具体来说,我希望能够通过应用程序连接到TCP套接字,并将代理转换为websocket并转移到另一个websocket服务器。TCP Socket到Websocket?
回答
从WebSocket客户端到TCP服务器的桥接是一种通用解决方案,它将较低级别的TCP协议封装到较高层级别的WebSocket协议。它允许浏览器(或其他websocket客户端)与任意TCP服务器进行通信。请注意,客户端(JavaScript)应用程序仍必须能够对TCP服务器说的协议进行解码/编码。
反向操作不是通用的,需要从TCP客户端应用程序到桥接器的消息进行特殊组帧,以便桥接器将知道如何将WebSocket消息编码到TCP服务器。 WebSockets是基于消息的传输,而TCP是较低级别的流传输。 TCP传输层在协议本身中没有消息的概念,因此必须在高层处理。换句话说,您将不得不做大量的工作来使您的TCP客户端应用程序能够与桥应用程序进行通信,因为它将直接在应用程序中实现WebSocket客户端。实际上,直接实现可能更少,因为已经有大多数流行语言可用的WebSocket客户端库。
您将无法通过网桥将预先存在的TCP客户端连接到现有的WebSocket服务器,而无需更改客户端和网桥(以添加消息边界和操作码信息),或者您将需要特殊的WebSocket服务器忽略WebSocket消息边界并将传入数据视为流(在较高层处理消息解析)。
也许你可以给一个用例,你认为这可能有用吗?
免责声明:我做了websockify。
我不完全清楚你要问什么,但WebSocket API主要适用于客户端。
您如何对服务器端脚本进行编码以及您使用何种语言完全取决于您。编写服务器端脚本时,应该能够选择是否使用TCP套接字等。
呃,什么?我认为这是比较清楚的。 – 2013-02-18 23:03:51
我不确定你在找什么,但为了帮助未来的人,我会写我所做的解决我的问题。
我的问题: 我希望能够举办noVNC我的web应用程序的服务器上,我想非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
这样,我就能够在端口5902
举办非的WebSocket的vncserver并通过noVNC与它连接在港口5555
。
没有测试过这个,但是与x11vnc vnc服务器配合得很好。
- 1. ActionScript Socket vs WebSocket
- 2. Node.JS WebSocket和Socket
- 3. Tcp Socket Closed
- 4. Java TCP Socket Sniffing
- 5. 使用TCP Socket和WebSocket的Heroku上的NodeJS应用程序
- 6. Tcp/IP Socket异常
- 7. TCP socket请阅读
- 8. 如何加速写入到tcp socket?
- 9. TCP Socket通信限制
- 10. Tcp Socket + send()错误#10054
- 11. 共享tcp socket android服务
- 12. 使用shared_ptr boost tcp socket C++
- 13. 安卓tcp socket问题
- 14. tcp socket数据乱序?
- 15. 的WebSocket在TCP模式
- 16. 禁用日志GET/phoenix/live_reload/socket/websocket?
- 17. 如何使用Qt阻塞tcp socket?
- 18. C C++ - TCP Socket类:接收问题
- 19. memcpy tcp socket上的段错误
- 20. AutoBind DatagramSocket像java中的TCP Socket
- 21. 可可 - 如何用ARC创建TCP Socket?
- 22. TCP Socket在Java中接收时挂起
- 23. Java TCP Socket - 人类可读取输出
- 24. 的C++ socket UDP和UNIX和Windows的TCP
- 25. C++ boost asio tcp socket读取旧数据
- 26. 使用boost :: asio :: ip :: tcp :: socket作为shared_ptr
- 27. Tcp socket突然关闭连接
- 28. unget bytes to boost :: asio :: ip :: tcp :: socket
- 29. php -fpm socket和TCP在同一时间
- 30. C#中的Tcp Socket服务器#
那么,例如,您的websockify在VNC服务器上使用,以使用noVNC。我需要将本地客户端连接到该VNC服务器,但只有websockified部分才会暴露给互联网。所以看起来我可能真的有我的工作为我.. – 2013-02-18 23:03:29
标记这是答案,因为它是当时最适用。感谢您的帮助,kanaka。 – 2013-03-06 18:59:39
@ kanaka,你不是不得不在websockify中实现非边界数据流吗?从TCP服务器返回到浏览器客户端的数据本质上最初是一个数据流。 – 2014-10-31 15:37:59