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
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>
|
||
|
|
||
|
|