data() {
return {
ws: null, // WebSocket对象
}
},
async mounted() {
this.initWebSocket();
},
destroyed() {
this.closeWebSocket();
},
methods: {
initWebSocket() {
// WebSocket与普通的请求所用协议有所不同,ws等同于http,wss等同于https
//const uuid = generateUUID();
this.ws = new WebSocket(
window.SHY_CONFIG.WEBSOCKET_URL +
// "websocket/equipment/" +
"ws/" +
this.$route.query.boxNewId
//+
// "/" +
// uuid
);
this.ws.onopen = this.wsonopen;
this.ws.onerror = this.wsonerror;
this.ws.onmessage = this.wsonmessage;
this.ws.onclose = this.wsonclose;
},
wsonopen(e) {
this.jsonLoading = true;
console.log("连接成功");
this.wssend("WebSocket连接成功");
},
wsonerror(e) {
console.log("连接失败");
this.wssend("WebSocket连接错误");
},
wsonmessage(e) {
if (e.data) {
const json = JSON.parse(e.data);
const data = json.map((item) => JSON.parse(item));
data.forEach((dataItem) => {
const index = this.boxData.findIndex(
(boxItem) => boxItem.thresholdId === dataItem.thresholdId
);
if (index !== -1) {
this.$set(this.boxData, index, {
...this.boxData[index],
...dataItem,
});
}
});
// console.log(this.boxData);
}
this.jsonLoading = false;
},
wsonclose(e) {
this.wssend("WebSocket连接关闭");
},
closeWebSocket() {
if (this.ws) {
console.log("websoket关闭");
this.ws.close();
}
},
},