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

时间:2013-03-01 15:03:14

标签: html5 websocket tcpsocket

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

2 个答案:

答案 0 :(得分:7)

绝对!这是websockify的目的。

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

免责声明:我创建了websockifynoVNC

答案 1 :(得分:5)

TCP和WebSocket不是相同的协议或框架,因此盲目地连接它们是行不通的。嗯...从技术上讲,websocket是http的升级,它在ssl(可选)上分层,而ssl又在tcp上分层。

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

WebSocket框架可以是以下任何一种:

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

简而言之,您需要实现websocket protocol framing才能将TCP连接到websocket。并且您需要实现基本HTTP UPGRADE才能达到这一点。