服务器主动给客户端推送消息:长轮询和长连接

(一)让服务器主动给客户端推送消息:长轮询和长连接

(1)长轮询:

客户端每隔很短的时间,都会对服务器发出请求,查看是否有新的消息,只要轮询速度足够快。;例如1秒,就能造成实时交互的效果。

缺点:对服务器、客户端双方都造成了大量的性能浪费。

(2)长连接:

浏览器和服务器只需要做一个握手的动作,在建立连接之后,双方可以在任意时刻,相互推送信息。同时,服务器与客户端之间交换的头信息很小。

(二)WebSocket 和 Socket.io 

(1)WebSocket 

WebSocket 是一种让客户端和服务器之间进行双向实时通信的技术。它是HTML最新标准HTML5的有一个协议规范,本质上是个基于TCP的协议,它通过HTTP/HTTPS协议发送一条特殊的请求进行握手后创建了一个TCP连接。此后浏览器/客户端和服务器之间便可以通过此连接来进行双向实时通信。

注意:

  • WebSocket协议,需要浏览器支持,更需要服务器支持。
  • 支持WebSocket协议的浏览器:Chrome4 、火狐4、IE10、Safari5
  • 支持WebSocket协议的服务器:Node0、Apach7.0.2、Nginx 1.3
  • Nodejs上需要写一些程序,来处理TCP请求。

(2)Socket.io 

WebSocket是HTML5最新提出的规范,虽然主流浏览器都已经支持,但可能也有不兼容的情况。因此有了SocketIO。

SocketIO 将WebSocket 、Ajax和其他的通信方式全部封装成了统一的通信接口。

即:使用SocketIO 时,不用担心兼容问题,底层会自动选用最佳的通信方式。因此,WebSocket 是SocketIO的一个子集。

 

可以根据自己的语言情况,使用哪种。 后续我会介绍一些关于Node、express、koa中如何使用Socket.IO

--------完。

你可能感兴趣的:(服务器端)