WebSocket:客户端和服务器进行双向通信的技术。是HTML最新标准的一个协议规范,本质上基于TCP协议,通过HTTP/HTTPS协议发送一条特殊的请求进行握手后创建一个TCP连接,然后浏览器/客户端和服务器之间通过连接进行双向实时通信。
HTTP协议是无状态、单向通信的,客户端请求一次,服务器回复一次。如果想让服务器消息及时下发到客户端,要采用轮询的机制,客户端定时频繁向服务器发出请求,效率低,HTTP数据包头本身字节量较大,浪费了大量宽带和服务器资源。
为了提高效率,出现AJAX/Comet技术,它实现了双向通信节省了一定带宽,但仍然需要发出请求,本质上是轮询。
WebSocket技术,客户端和服务器之间能通过HTTP协议建立TCP连接,随时进行双向通信,交换的数据包头信息量很小。
SocketIO: WebSocket是HTML5最新提出的规范,虽然主流浏览器都已经支持,但仍然可能出现不兼容的情况,为了兼容所有浏览器,一致编程体验,SocketIO将WebSocket、AJAX和其他的通信方式全部封装成一个统一的信息接口,用SocketIO时,不用担心兼容问题,底层会选择最佳通信方式,WebSocket是SocketIO的一个子集。
网友评论