初始化页面时,连接websocket,偶尔会出现连接不上的情况,解决办法:加定时器定时连接websocket,直到成功,清除定时器。
var ws = null;
mounted() {
// ws没连上会一直重连,直到成功
let timer = setInterval(() => {
if (!ws || (ws && ws.readyState == 3)) this.startWebsocket();
else if (ws && ws.readyState == 1) clearInterval(timer); //连接成功,清除定时器
}, 500);
},
methods: {
startWebsocket() {
ws = new WebSocket("http://localhost:8080");
ws.onopen = () => {
console.log("连接成功");
};
ws.onclose = () => {
console.log("连接关闭");
};
ws.onmessage = evt => {
console.log("接收消息成功");
};
ws.onerror = () => {
console.log("连接失败");
};
}
}
WebSocket连接时的四种状态
WebSocket的四种状态
CONNECTING:值为0,表示正在连接。
OPEN:值为1,表示连接成功,可以通信了。
CLOSING:值为2,表示连接正在关闭。
CLOSED:值为3,表示连接已经关闭,或者打开连接失败。