// 连接WebSocket const connectWebSocket = () => { if (isConnected.value) return; socket.value = new WebSocket(WS_URL); socket.value.onopen = () => { isConnected.value = true; addMessage('ai', '连接已建立,请问有什么可以帮您?', MESSAGE_TYPE.NORMAL); }; socket.value.onmessage = (event) => { console.log('收到消息:', event); const data = event.data.trim(); if (data.startsWith('')) { aiStatus.value = 2; // 切换到思考状态 isReplying.value = true; } if (data.includes('')) { aiStatus.value = 1; // 切换到思考状态 } if (data.startsWith('')) { addingText.value = ''; isAnswer.value = true; } if (isAnswer.value) { addingText.value += data.replace(//g, '').replace(/<\/answer>/g, ''); console.log('添加的文本:', addingText.value); } if (!data.includes('你好,我是 AI 小助手,请输入你的问题。') && !data.includes('')) { processThinkingMessage(data); } if (data.includes('')) { const strList = data.split('')[1].split('')[0]; // videoList.value = [{ src: '/videos/1.mp4' }, { src: '/videos/2.mp4' }, { src: '/videos/3.mp4' }]; videoList.value = strList.replace(/\[/g, '').replace(/\]/g, '').split(',').map(src => ({ src: `/videos/${src.trim()}.mp4` })) } if (data.includes('')) { currentThinking.value = null isReplying.value = false; isAnswer.value = false; audioText.value = addingText.value; messages.value[messages.value.length - 1].loading = false; // audioText.value='先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也' } }; socket.value.onerror = (error) => { console.error('WebSocket错误:', error); addMessage('ai', '连接出错,请稍后再试', MESSAGE_TYPE.NORMAL); }; socket.value.onclose = () => { isConnected.value = false; addMessage('ai', '连接已断开', MESSAGE_TYPE.NORMAL); }; };