6

是否可以运行接受来自 WebSocket 客户端的传入连接的 TCP 套接字服务器?我有一个 TCP 套接字服务器,我希望能够在浏览器中测试它。这可能吗?

4

2 回答 2

9

绝对地!这就是websockify的目的。

当然,您的 WebSocket 客户端应用程序需要能够实现 TCP 服务器的协议。例如,noVNC是一个浏览器 VNC 客户端,它实现了 RFB 协议,通过使用 websockify 它可以连接到一个普通的基于 TCP 的 VNC 服务器。

免责声明:我创建了websockifynoVNC

于 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 回答