/** * WebSocket 配置文件 * * 集中管理 WebSocket 相关配置 */ // 根据环境选择 WebSocket 地址 const getWebSocketUrl = () => { // #ifdef H5 // H5 开发环境 if (process.env.NODE_ENV === 'development') { return 'ws://localhost:8082/ws/chat' } // H5 生产环境 return 'wss://120.55.234.65:8082/ws/chat' // #endif // #ifdef MP-WEIXIN // 小程序必须使用 wss(加密连接) return 'wss://120.55.234.65:8082/ws/chat' // #endif // #ifdef APP-PLUS // App 可以使用 ws 或 wss return 'wss://120.55.234.65:8082/ws/chat' // #endif // 默认地址 return 'ws://120.55.234.65:8082/ws/chat' } export default { // WebSocket 服务器地址(动态获取) url: getWebSocketUrl(), // 重连配置 reconnect: { enabled: true, // 是否启用自动重连 maxAttempts: 10, // 最大重连次数 interval: 3000, // 重连间隔(毫秒) incrementInterval: true, // 是否递增重连间隔 maxInterval: 30000 // 最大重连间隔 }, // 心跳配置 heartbeat: { enabled: true, // 是否启用心跳 interval: 30000, // 心跳间隔(毫秒) timeout: 10000, // 心跳超时时间 pingMessage: { // 心跳消息格式 type: 'ping', timestamp: () => Date.now() } }, // 消息队列配置 messageQueue: { enabled: true, // 是否启用消息队列 maxSize: 100, // 队列最大长度 clearOnConnect: false // 连接成功后是否清空队列 }, // 日志配置 log: { enabled: true, // 是否启用日志 level: 'info' // 日志级别:debug, info, warn, error }, // 消息类型定义 messageTypes: { // 文字消息 TEXT: 'text', // 图片消息 IMAGE: 'image', // 语音消息 VOICE: 'voice', // 系统消息 SYSTEM: 'system', // 心跳 PING: 'ping', PONG: 'pong', // 已读回执 READ: 'read', // 输入中 TYPING: 'typing', // 人工转接 TRANSFER: 'transfer' }, // 事件名称定义 events: { OPEN: 'open', CLOSE: 'close', ERROR: 'error', MESSAGE: 'message', RECONNECT: 'reconnect', RECONNECT_FAILED: 'reconnect_failed' } }