// 连接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);
};
};