济菏高速业务端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

108 lines
3.1 KiB

1 year ago
<!--
电话广播管理平台websocket消息
-->
<template></template>
<script>
import {mapState} from "vuex";
import {onMessage} from "@/api/equipment/phone/phone";
import Cookies from 'js-cookie'
export default {
name: "PhoneWebsocket",
data() {
return {
//修改变量名,避免跟原websocket冲突
phoneWebsocket: null
};
},
// computed: {
// ...mapState({
// token: (state) => state.user.token,
// websocket: (state) => state.user.websocket,
// }),
// },
// watch: {
// websocket({password, path, port, interval}) {
// 建立 websocket 连接
// this.socket.initialize({
// // url: 'ws://' + location.hostname + ':' + port + path,
// url: 'ws://10.7.187.6:8981',
// password: password,
// tokenSN: this.token,
// heartRate: interval,
// });
// this.socket.onopen = () => {
// };
// this.socket.onmessage = (message) => {
// // console.log("电话广播websocket>>>>>>>>>>>>",message)
// // console.log("电话广播websocket>>>>>>>>>>>>",this.isJson(message))
// if (this.isJson(message)) {
// onMessage(message).then(response => {
// console.log(response)
// });
// }
// };
// },
// },
created() {
this.initWebSocket();
},
destroyed() {
this.phoneWebsocket.close() //离开路由之后断开websocket连接
},
methods: {
isJson(str){
if (typeof str == 'string') {
try {
let obj=JSON.parse(str);
if(typeof obj == 'object' && obj ){
return true;
}else{
return false;
}
} catch(e) {
return false;
}
}
},
initWebSocket(){ //初始化weosocket
// var url = "ws://localhost:8000/websocket";
var url = "ws://10.7.187.6:8981";
this.phoneWebsocket = new WebSocket(url);
this.phoneWebsocket.onmessage = this.websocketonmessage;
this.phoneWebsocket.onopen = this.websocketonopen;
this.phoneWebsocket.onerror = this.websocketonerror;
this.phoneWebsocket.onclose = this.websocketclose;
},
websocketonopen(){
console.log("紧急电话广播系统建立连接");
},
websocketonerror(){//连接建立失败重连
console.log("紧急电话广播系统连接建立失败重连");
setTimeout(5000,this.initWebSocket());
// this.initWebSocket();
},
websocketonmessage(message){ //数据接收
let token = Cookies.get('Admin-Token');
if(token == undefined){
return;
}
if (this.isJson(message.data)) {
let data = {
data : message.data
}
onMessage(data).then(response => {
console.log(response)
});
}
},
websocketclose(e){ //关闭
console.log('紧急电话广播系统断开连接',e);
},
},
};
</script>