利用websocket解决,websocket是H5开始提供的一种在单个TCP链接上进行双全公通讯的协议.websocket是一个持久化的协议.
通过这种方式可以实现客户端和服务端的长链接双向实时通讯,
优点:减少资源的消耗,实时推送不用等待客户端的请求,减少推送量
缺点:少部分浏览器不支持不同浏览器支持的程度和方式不同,
WebSocket是一种在单个TCP连接上进行全双工通信的协议。它实现了浏览器与服务器全双工通信,允许服务器主动向客户端发送信息,是HTML5标准之一。
使用WebSocket可以实现实时双向通信,它具有以下特点:
1、建立在TCP协议之上,服务器端的实现比较容易。
2、与HTTP协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用HTTP协议,因此握手时不容易屏蔽,能通过各种HTTP代理服务器。
3、数据格式比较轻量,性能开销小,带宽和cpu的消耗小,在服务器端实现比较容易。
4、可以发送文本,也可以发送二进制数据。
5、没有同源限制,客户端可以与任意服务器通信。
使用WebSocket可以实时传输任何类型的数据,如文本、图片、音频或视频等。
使用WebSocket的步骤:
(1)创建WebSocket对象
var ws = new WebSocket(url);
(2)发送请求
ws.send(data);
(3)建立连接
ws.onopen = function () {
// Connection opened.
};
(4)接收数据
ws.onmessage = function(evt) {
// Data Received.
var data = evt.data;
};
(5)关闭连接
ws.onclose = function () {
// Connection closed.
};