import { getAiChatSocket } from './AiChatSocket' /** * 全局 WebSocket 管理器 * 统一管理多个服务的 WebSocket 连接 */ class GlobalSocketManager { constructor() { this.sockets = {} // serviceName -> SocketManager this.token = null this.isAllConnected = false } /** * 初始化所有连接 */ init(token) { this.token = token this._initAiChat() // Future: this._initNotification() } async _initAiChat() { const aiChat = getAiChatSocket() aiChat.on('connect', () => console.log('AI Chat connected')) aiChat.on('error', (err) => console.error('AI Chat error:', err)) await aiChat.connect(this.token) this.sockets['ai_chat'] = aiChat } getSocket(serviceName) { return this.sockets[serviceName] } closeAll() { Object.values(this.sockets).forEach(socket => socket.close()) this.sockets = {} } } let globalInstance = null export function getGlobalSocket() { if (!globalInstance) { globalInstance = new GlobalSocketManager() } return globalInstance } export default GlobalSocketManager