是否可以运行接受来自 WebSocket 客户端的传入连接的 TCP 套接字服务器?我有一个 TCP 套接字服务器,我希望能够在浏览器中测试它。这可能吗?
问问题
10407 次
2 回答
9
绝对地!这就是websockify的目的。
当然,您的 WebSocket 客户端应用程序需要能够实现 TCP 服务器的协议。例如,noVNC是一个浏览器 VNC 客户端,它实现了 RFB 协议,通过使用 websockify 它可以连接到一个普通的基于 TCP 的 VNC 服务器。
免责声明:我创建了websockify和noVNC
于 2013-03-01T16:47:52.590 回答
6
TCP 和 WebSocket 不是相同的协议或框架,因此盲目地将它们连接起来是行不通的。嗯......从技术上讲,websocket 是 http 的升级,它在 ssl 上分层(可选),而后者又在 tcp 上分层。
TCP 可以被认为是一个字节流,而 WebSocket 是一组帧。
WebSocket 帧可以是以下任何一种:
- TEXT - 由组成单个 UTF8 消息的 1 个或多个帧组成
- BINARY - 由 1 个或多个构成字节数组消息的帧组成
- CONTINUATION - 由 TEXT 和 BINARY 用于拼凑 2 个或更多帧。
- PING - 明显
- PONG - 明显
- CLOSE - 请求关闭/断开协议。
简而言之,您需要实现websocket 协议框架,以便将 TCP 连接到 websocket。您需要实现基本的HTTP UPGRADE才能达到这一点。
于 2013-03-01T15:14:18.450 回答