【发布时间】:2013-03-01 15:03:13
【问题描述】:
是否可以运行一个 TCP Socket 服务器来接受来自 WebSocket 客户端的传入连接?我有一个 TCP 套接字服务器,我希望能够在浏览器中测试它。这可能吗?
【问题讨论】:
是否可以运行一个 TCP Socket 服务器来接受来自 WebSocket 客户端的传入连接?我有一个 TCP 套接字服务器,我希望能够在浏览器中测试它。这可能吗?
【问题讨论】:
绝对!这就是websockify的目的。
当然,您的 WebSocket 客户端应用程序需要能够实现 TCP 服务器的协议。例如,noVNC 是一个浏览器 VNC 客户端,它实现了 RFB 协议,通过使用 websockify 可以连接到一个普通的基于 TCP 的 VNC 服务器。
免责声明:我创建了websockify 和noVNC
【讨论】:
TCP 和 WebSocket 不是相同的协议或框架,因此盲目地连接它们是行不通的。嗯......从技术上讲,websocket 是 http 的升级,它在 ssl 上分层(可选),而后者又在 tcp 上分层。
TCP可以看成是一个字节流,而WebSocket是一组帧。
WebSocket 帧可以是以下任何一种:
简而言之,您需要实现websocket protocol framing 才能将TCP 连接到websocket。您需要实现基本的HTTP UPGRADE 才能达到这一点。
【讨论】: