Ajax技术很聪明的一点是没有设计要使用的方式。WebSocket为指定目标创建,用于双向推送消息。
关于web实时通信技术的发展(poll,ajax,comet等)以及websocket的介绍具体请参见:
链接的文章介绍了websocket的旧版协议草案,并用.net实现了该草案。
在2011年7月份,websocket发布了最新版的协议草案,草案的最新版本是草案10,草案的链接地址为:http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-10,新的草案增加了安全性和可扩展性。
新草案客户端与服务器端的握手协议:
客户端发起websocket请求
这里用的是firefox浏览器,所以用MozWebSocket(),其他浏览器像chrome,需要用WebSocket()
请求头信息格式:
服务器端取得请求信息,主要是Sec-WebSocket-Key的值,取得该值之后,连接上字符串258EAFA5-E914-47DA-95CA-C5AB0DC85B11,然后计算其sha1散列值,生成一个20位的字符串,再对该字符串进行base64编码,最后得到的值,按照下列响应信息格式返回给客户端
客户端接收到服务器的响应信息,连接建立。
新草案的数据传输格式请参考下文:
2、数据传输的格式:
数据帧协议是按照扩展的巴科斯范式(ANBF:Augmented Backus-Naur Form RFC5234)组成的:
上面是websocket的简单介绍,以作备忘。