我在这里从相关问题中听说了HTML文件规范中的Web套接字接口.
听起来很有前途!
我不明白它是如何工作的它仍然使用HTTP协议并解决它或它是否像TCP套接字一样工作?
在某种程度上,它既是HTTP请求又是常规TCP套接字.
使用TCP上的普通HTTP请求请求websocket连接.发送了一些标题,向Web服务器指示它是正在请求的websocket,而不是普通页面,但从根本上说它只是一个HTTP请求.
从服务器发送响应后,将升级连接.也就是说,用于HTTP的TCP连接被劫持以获得更高的调用:双向,实时数据传输.
一旦你具备双向和高效通信的能力(这是对彗星的主要胜利),开发人员的视野就会大大增加.突然之间,MMO游戏和实时协作之类的东西变得可能,这些东西只能通过网络技术实现.
它不是HTTP,也不是普通的TCP套接字.它旨在获得常规套接字连接的低开销(AJAX/COMET是非常高的开销),但不会牺牲过去几年开发的一些浏览器安全原则.
初始WebSockets握手看起来很像HTTP.这将使现有的HTTP代理和Web服务器更容易支持传入的WebSockets连接并使用它们做正确的事情(即将它们转发到真正的处理程序).但是在成功握手(包括交换和验证原始信息)之后,连接保持打开并变为双向.
每个数据包(无论是从服务器还是从客户端发送)都以'\ x00'(零字节)开头,后跟UTF-8编码数据,以'\ xff'结尾(全1字节).
目前的标准草案如下:http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-76
您还可能会发现noVNC中包含的wsproxy可用作参考.wsproxy是TCP套接字代理的通用WebSockets.noVNC附带了wsproxy的C和python版本.
http://github.com/kanaka/noVNC/tree/master/utils/