// 最终调试脚本 const WebSocket = require('ws'); const WS_URL = 'ws://localhost:3003'; const TEST_MANAGER_ID = '22'; const TEST_CONVERSATION_ID = '4fa4b92f-df20-40ae-94b9-f906753a4cfd'; let managerWs = null; let startTime = null; console.log('=== 启动最终调试 ==='); console.log(`测试会话ID: ${TEST_CONVERSATION_ID}`); // 连接客服WebSocket managerWs = new WebSocket(WS_URL); managerWs.on('open', () => { console.log('✅ 客服WebSocket连接已建立'); startTime = Date.now(); // 发送认证消息 const authMsg = JSON.stringify({ type: 'auth', managerId: TEST_MANAGER_ID, userType: 'manager' }); console.log('📤 客服发送认证消息:', authMsg); managerWs.send(authMsg); }); managerWs.on('message', (data) => { try { const message = JSON.parse(data.toString()); console.log(`📥 客服收到消息 (${Date.now() - startTime}ms):`, JSON.stringify(message)); if (message.type === 'auth_success') { console.log('✅ 客服认证成功'); // 等待1秒后发送测试消息 setTimeout(() => { sendTestMessage(); }, 1000); } if (message.type === 'error') { console.error('❌ 接收到错误消息:', message.message); // 如果收到错误,尝试发送替代格式 setTimeout(() => { console.log('\n🔄 尝试替代格式...'); sendAlternativeFormat(); }, 2000); } if (message.type === 'message_sent') { console.log('✅ 消息发送成功!'); // 5秒后关闭连接 setTimeout(() => { console.log('\n=== 调试成功完成 ==='); managerWs.close(); }, 5000); } } catch (e) { console.error('❌ 解析消息失败:', e); } }); managerWs.on('error', (error) => { console.error('❌ 客服WebSocket错误:', error); }); managerWs.on('close', () => { console.log('❌ 客服WebSocket连接已关闭'); }); // 发送测试消息 function sendTestMessage() { const messageId = 'test_manager_' + Date.now(); const testMessage = { type: 'chat_message', payload: { messageId: messageId, conversationId: TEST_CONVERSATION_ID, content: '测试消息:这是客服发送的测试消息', contentType: 1 } }; console.log('\n📤 客服发送消息:', JSON.stringify(testMessage)); managerWs.send(JSON.stringify(testMessage)); } // 发送替代格式消息 function sendAlternativeFormat() { const messageId = 'test_manager_alt_' + Date.now(); const alternativeMessage = { type: 'chat_message', messageId: messageId, conversationId: TEST_CONVERSATION_ID, content: '测试替代格式:不使用payload包装', contentType: 1 }; console.log('📤 客服发送替代格式消息:', JSON.stringify(alternativeMessage)); managerWs.send(JSON.stringify(alternativeMessage)); // 5秒后关闭连接 setTimeout(() => { console.log('\n=== 调试结束 ==='); managerWs.close(); }, 5000); }