HTML 5 Web Socket——拯救
HTML 5 Web Socket定义在HTML 5规范的通信章节,它代表Web通信的下一个演变:通过一个单一的Socket实现一个全双工,双向通信的信道。HTML 5 Web Socket提供了一个真正的标准,你可以使用它构建可扩展的实时Web应用程序。此外,由于它提供了一个浏览器自带的套接字,消除了Comet解决方案的许多问题,Web Socket显著降低了系统开销和复杂性。
为了建立一个Web Socket连接,客户端和服务器在初始握手期间要从HTTP协议升级到WebSocket协议,如下面的例子:
例1:WebSocket握手(浏览器请求,服务器响应)
建立好连接后,WebSocket数据帧就可以在客户端和服务器之间以全双工模式传输,在同一时间任何方向,可以全双工发送文本和二进制帧,最小的帧只有2个字节。在文本帧中,每一帧始于0x00直接,止于0xFF字节,数据使用UTF-8编码。WebSocket文本帧使用终结器,而二进制帧使用一个长度前缀。
注意:虽然WebSocket协议已经可以支持多种客户端,但不能将原始数据传递给JavaScript,因为JavaScript不支持字节类型,因此,如果客户端是JavaScript,二进制数据会被忽略,但可以传递给支持字节类型的客户端。