浏览器上的WebSocket客户端可以与TCP Socket服务器通信



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

绝对!这就是websockify的目的。

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

免责声明:我创建了websockify和noVNC

TCP和WebSocket不是相同的协议或帧,所以盲目地将它们连接起来是行不通的。嗯…从技术上讲,websocket是HTTP的升级版,它在SSL(可选)上分层,而SSL又在tcp上分层。

TCP可以被认为是一个字节流,而WebSocket是一个帧集。

WebSocket帧可以是以下任意一个:

  • TEXT -由1个或多个帧组成单个UTF8消息
  • BINARY -由1个或多个帧组成字节数组消息
  • CONTINUATION -用于TEXT和BINARY将2个或更多帧拼接在一起。
  • PING -明显
  • PONG -明显
  • CLOSE -请求关闭/断开协议。

简而言之,您需要实现websocket协议帧,以便将TCP连接到websocket。为了达到这一点,您需要实现基本的HTTP UPGRADE。

相关内容

  • 没有找到相关文章

最新更新