/* * @Author: tangqihui tangqihui@yuan-info.com * @Date: 2023-09-14 17:20:59 * @LastEditors: 曹文丽 caowenli@yuan-info.com * @LastEditTime: 2023-09-21 16:24:09 * @FilePath: /御安项目/火影资管/yuan-asset-module-browser/src/utils/socket/useSocket.ts * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ import VueSocketIO from 'vue-socket.io' import { getTokenCache } from "../../utils/auth/token"; const socketBase = ref({}) function initSocket () { let wxsUrl; if(import.meta.env.MODE == "development") { wxsUrl = 'http://192.168.15.120:8002' } else { wxsUrl = location.hostname + ':9001' } socketBase.value = new VueSocketIO({ debug: false , // debug调试,生产建议关闭 connection: wxsUrl + '/?Authorization=Bearer ' + getTokenCache().access_token, options: { autoConnect: false, } }) } export function resitopenSocket () { initSocket() return socketBase.value } resitopenSocket() export function openSocket ( type, data, obj ) { // 获取 当前实例对象 const socket = socketBase.value.io; // 触发事件,连接socket socket.open(); socket.emit("join", type); socket.emit('message', { type: type, title: 'queryParam', data: data }) onBeforeUnmount(() => { socket.emit("leave", type); }); } export const registerSockets = (sockets, proxy) => { console.log(socketBase.value) // debugger sockets && Object.keys(sockets).forEach((t) => { "subscribe" !== t && "unsubscribe" !== t && socketBase.value.emitter.addListener(t, sockets[t], proxy); }); }; export const destroySockets = (sockets, proxy) => { sockets && Object.keys(sockets).forEach((t) => { socketBase.value.emitter.removeListener(t, proxy); }); };