WebSocket
WebSocket的优点在于,不用等客户端去请求,每当服务器有数据更新时,就会主动把数据发给客户端。它使用websocket协议,网络地址为ws://,而不是http://。
既然是H5提出的技术,那么肯定存在兼容性问题。IE10以上支持。一个简单的检测浏览器支持不支持该技术的方式是 判断window.WebSocket=undefined与否。
if (window.WebSocket){
var socket = new WebSocket("ws://localhost:6677"); //建立连接
socket.onopen = function(){} //连接建立事件
socket.close() //断开连接
socket.onclose = function(){} //连接关闭事件
socket.send("xxxxx") //发送消息
socket.onmessage = function(){} //接收到消息的事件
}
ws.onerror = function(evt) { console.log(“WebSocketError!”); };
//如果出现连接,处理,接收,发送数据失败的时候就会触发onerror事件
//我们可以看出所有的操作都是采用事件的方式触发的,这样就不会阻塞UI,使得UI有更快的响应时间,得到更好的用户体验。
socket.readyState =0,1,2,3分别对应了正在连接,连接成功,正在关闭和已经关闭四种状态。
WebSocket完全可以取代ajax。send是ajax的发送请求,onmessage就是接收到响应。
例如: