1、websocket 是什么?
处理客户端与服务端及时通讯而发生的手艺。
先经由过程HTTP/HTTPS协定举行握手后竖立一个用于交流数据的TCP衔接,然后服务端与客户端经由过程此TCP衔接举行及时通讯。
服务器和客户端能够在给定的时候范围内的恣意时候,互相推送信息。
之前我们完成推送手艺,用的都是轮询,在特定时候距离由浏览器自动发出要求,主动拉取服务器音讯。须要不停的向服务器发送要求,会占用大批的带宽和服务器资本。
2、运用websocket
在支撑WebSocket的浏览器中,在竖立socket以后。能够经由过程onopen,onmessage,onclose、onerror四个事宜完成对socket举行相应
只读属性 readyState 示意衔接状况,能够是以下值:
0 - 示意衔接还没有竖立。
1 - 示意衔接已竖立,能够举行通讯。
2 - 示意衔接正在举行封闭。
3 - 示意衔接已封闭或许衔接不能翻开。
// window.WebSocket "WebSocket" in window 检测浏览器是不是支撑 WebSocket
var ws = new WebSocket(“ws://localhost:8080”);
// 请求一个WebSocket对象,参数是须要衔接的服务器端的地点
// 同http协定运用http://开首一样,WebSocket协定的URL运用ws://开首
// 别的平安的WebSocket协定运用wss://开首。
// 指定衔接胜利后的回调函数
ws.onopen = function() {
console.log(“open”);
ws.send(“hello”);
// 用于向服务器发送数据
};
// 或许
ws.addEventListener('open', function (event) {
ws.send('Hello Server!');
});
// 指定收到服务器数据后的回调函数
ws.onmessage = function(evt) {
console.log(evt.data)
};
// 指定衔接封闭后的回调函数
ws.onclose = function(evt) {
console.log(“WebSocketClosed!”);
};
// 指定报错时的回调函数
ws.onerror = function(evt) {
console.log(“WebSocketError!”);
};
// 封闭websocket
websocket.close();