🎨 organize websocket code structure

This commit is contained in:
landaiqing
2024-09-27 00:42:50 +08:00
parent 4f42d1c5b4
commit 172bf00d93
7 changed files with 80 additions and 38 deletions

View File

@@ -58,9 +58,9 @@ import BoxDog from "@/components/BoxDog/BoxDog.vue";
import QRLoginFooter from "@/views/QRLogin/QRLoginFooter.vue";
import {useRouter} from 'vue-router';
import {generateQrCode} from "@/api/oauth/wechat.ts";
import {onMounted, onUnmounted, ref} from "vue";
import {onMounted, ref} from "vue";
import logo from "@/assets/svgs/logo-schisandra.svg";
import useWebSocket from "@/utils/websocket/websocket.ts";
import useStore from "@/store";
import {message} from "ant-design-vue";
import {generateClientId, getUserDevice} from "@/api/oauth";
@@ -71,6 +71,7 @@ const router = useRouter();
const client = useStore().client;
const qrcode = ref<string>('');
const status = ref<string>('loading');
const websocket = useStore().websocket;
/**
* 获取client_id
@@ -119,15 +120,14 @@ const wsOptions = {
url: import.meta.env.VITE_WEB_SOCKET_URL + "?client_id=" + getLocalClientId(),
};
const {open, close, on} = useWebSocket(wsOptions);
/**
* 监听消息
*/
async function handleListenMessage() {
open();
websocket.initialize(wsOptions);
// 注册消息接收处理函数
on('message', async (data: any) => {
websocket.on('message', async (data: any) => {
if (data.code === 200 && data.data) {
const user = useStore().user;
const {access_token, refresh_token, uid, expires_at} = data.data;
@@ -148,10 +148,6 @@ async function handleListenMessage() {
onMounted(async () => {
await getQrCode();
});
onUnmounted(async () => {
close(true);
});
</script>
<style src="./index.scss" scoped>
@import "@/assets/styles/global.scss";