WebSocket是区别于HTTP/HTTPS的另外一种协议,目的是实现后端主动向前端发送数据,是一种TCP的连接。
1. WebSocket的前后端握手
WebSocket协议在握手连接的时候,走的是HTTP/HTTPS协议的upgrade请求,但是在握手之后的数据传输走的就是WebSocket协议了。
2. WebSocket前端简单代码
var ws = new WebSocket("ws://localhost:8080/msg");
ws.onopen = function(evt) {
console.log("Connection open ...");
ws.send("Hello WebSockets!");
};
ws.onmessage = function(evt) {
console.log("Received Message: " + evt.data);
ws.close();
};
ws.onclose = function(evt) {
console.log("Connection closed.");
};
在创建WebSocket对象后,会自动向服务器发起连接,本例web服务器协议为HTTP, 地址为localhost:8080, "ws:"代表websocket协议,如果服务器端是HTTPS协议,为"wss:"
查看WebSocket的状态,可以用如下语句:
ws.readyState === WebSocket.OPEN
如果服务端对客户端进行分类或者服务端需要子协议从而进行不同的处理,则客户端可以通过WebSocket的protocol