一、 websocket概要:
websocket是基于TCP传输层协议实现的一种标准协议 (关于网络协议, 可以看看文末的图片), 用于在客户端和服务端双向传输数据
传统的客户端想要知道服务端处理进度有两个途径:
1) 通过ajax不断轮询, 由于http的无状态性, 每次轮询服务器都需要去解析http协议, 对服务器压力也很大
2) 采用long poll的方式, 服务端不给客户端反馈, 客户端就一直等待, 服务就一直被挂起, 此阶段一直是阻塞状态, 而当服务器完成升级( http–>websocket )后, 上面两个问题就得到解决了:
被动性, 升级后, 服务端可以主动推送消息给客户端, 解决了轮询造成的同步延迟问题
升级后, websocket只需要一次http握手, 服务端就能一直与客户端保持通信, 直到关闭连接, 这样就解决了服务器需要反复解析http协议, 减少了资源的开销.
二、 websocket通信过程
websocket目前基本主流浏览器都已经支持, IE10以下不支持 .
1、建立连接
在客户端,new Websocket 实例化一个新的WebSocket客户端对象, 连接类似 ws://yourdomain:port/path