40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import { useDictSync } from "@/hooks/websocket/services/useDictSync";
|
||
import { getAccessToken } from "@/utils/auth";
|
||
|
||
/**
|
||
* 初始化WebSocket服务
|
||
*/
|
||
export function setupWebSocket() {
|
||
console.log("[WebSocketPlugin] 开始初始化WebSocket服务...");
|
||
|
||
// 检查token是否存在
|
||
const token = getAccessToken();
|
||
if (!token) {
|
||
console.warn(
|
||
"[WebSocketPlugin] 未找到访问令牌,WebSocket初始化已跳过。用户登录后将自动重新连接。"
|
||
);
|
||
return;
|
||
}
|
||
|
||
try {
|
||
// 延迟初始化,确保应用完全启动
|
||
setTimeout(() => {
|
||
const dictWebSocket = useDictSync();
|
||
|
||
// 初始化字典WebSocket服务
|
||
dictWebSocket.initWebSocket();
|
||
console.log("[WebSocketPlugin] 字典WebSocket初始化完成");
|
||
|
||
// 在窗口关闭前断开WebSocket连接
|
||
window.addEventListener("beforeunload", () => {
|
||
console.log("[WebSocketPlugin] 窗口即将关闭,断开WebSocket连接");
|
||
dictWebSocket.closeWebSocket();
|
||
});
|
||
|
||
console.log("[WebSocketPlugin] WebSocket服务初始化完成");
|
||
}, 1000); // 延迟1秒初始化
|
||
} catch (error) {
|
||
console.error("[WebSocketPlugin] 初始化WebSocket服务失败:", error);
|
||
}
|
||
}
|