济菏高速数据中心代码
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.
 
 
 
 
 

62 lines
1.3 KiB

<template>
</template>
<script>
import { mapState } from 'vuex'
export default {
name: "Websocket",
data() {
return {};
},
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: 'wss://' + location.hostname + ':' + window.location.port + '/ws' || 80 + '/ws',
password: password,
tokenSN: this.token,
heartRate: interval
});
this.socket.onmessage = (message) => {
message = JSON.parse(message)
const method = message.method;
if (method !== 'event')
{
return;
}
const params = message.params;
const subEvent = params.subEvent;
const content = params.content;
switch (subEvent)
{
case 'reactive':
this.$store.dispatch('HandleReactiveResponse', content)
break;
// 支付
case 'payment_webSocket_send':
this.$store.commit('PAYMENT', content)
break;
default:
}
}
}
},
created() {
},
methods: {
}
};
</script>