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