1.新建websocket.js文件
let webSock = null;
let messageCallback = null;
let errorCallback = null;
let params = null;
function initWebSocket(url) {
if (typeof WebSocket === "undefined") {
window.vm.$Message.error("您的浏览器不支持WebSocket,无法获取数据");
return false;
}
const requestWebSocketUrl = "ws://test.ws.com" + url;
webSock = new WebSocket(requestWebSocketUrl);
webSock.onmessage = function(e) {
webSocketOnMessage(e);
};
webSock.onopen = function() {
websocketOpen();
};
webSock.onerror = function() {
window.vm.$Message.error("ws连接异常,请稍候重试");
errorCallback();
};
webSock.onclose = function(e) {
webSocketClose(e);
};
}
function websocketOpen(e) {
console.log("ws连接成功");
websocketSend(params);
}
function websocketSend(params) {
if (webSock.readyState === webSock.OPEN) {
webSock.send(JSON.stringify(params));
}
if (webSock.readyState === webSock.CLOSED) {
errorCallback();
}
}
function webSocketOnMessage(e) {
messageCallback(JSON.parse(e.data));
}
function webSocketClose(e) {
if (e && e.code !== 1000) {
}
}
export const sendWebsocket = (url, params, successCallback, errCallback) => {
initWebSocket(url);
messageCallback = successCallback;
errorCallback = errCallback;
params = params;
};
export const closeWebsocket = () => {
if (webSock) {
webSock.onclose();
}
};
2.页面中使用
export default {
beforeDestroy() {
closeWebsocket()
},
data() {
return {
}
},
mounted() {
},
methods: {
wsSuccess(data) {
const dataJson = data
},
wsError() {
console.log('错误啦')
},
searchList() {
closeWebsocket()
let params = {
id:1
}
sendWebsocket('ws://test.ws.com', params, this.wsSuccess, this.wsError)
},
},
}