fix: 连一下ws

This commit is contained in:
Junhui Chen 2025-08-07 18:41:49 +08:00
parent da00968586
commit da0b949ca4

View File

@ -95,92 +95,92 @@ export default function AskScreen() {
}; };
}, [isHello]); }, [isHello]);
// useFocusEffect( useFocusEffect(
// useCallback(() => { useCallback(() => {
// webSocketManager.connect(); webSocketManager.connect();
// const handleChatStream = (message: WsMessage) => { // const handleChatStream = (message: WsMessage) => {
// if (message.type === 'ChatStream') { // if (message.type === 'ChatStream') {
// setUserMessages(prevMessages => { // setUserMessages(prevMessages => {
// const newMessages = [...prevMessages]; // const newMessages = [...prevMessages];
// const lastMessage = newMessages[newMessages.length - 1]; // const lastMessage = newMessages[newMessages.length - 1];
// if (lastMessage && lastMessage.role === Assistant) { // if (lastMessage && lastMessage.role === Assistant) {
// if (typeof lastMessage.content === 'string') { // if (typeof lastMessage.content === 'string') {
// if (lastMessage.content === 'keepSearchIng') { // if (lastMessage.content === 'keepSearchIng') {
// // 第一次收到流式消息,替换占位符 // // 第一次收到流式消息,替换占位符
// lastMessage.content = message.chunk; // lastMessage.content = message.chunk;
// } else { // } else {
// // 持续追加流式消息 // // 持续追加流式消息
// lastMessage.content += message.chunk; // lastMessage.content += message.chunk;
// } // }
// } else { // } else {
// // 如果 content 是数组,则更新第一个 text 部分 // // 如果 content 是数组,则更新第一个 text 部分
// const textPart = lastMessage.content.find(p => p.type === 'text'); // const textPart = lastMessage.content.find(p => p.type === 'text');
// if (textPart) { // if (textPart) {
// textPart.text = (textPart.text || '') + message.chunk; // textPart.text = (textPart.text || '') + message.chunk;
// } // }
// } // }
// } // }
// return newMessages; // return newMessages;
// }); // });
// } // }
// }; // };
// const handleChatStreamEnd = (message: WsMessage) => { // const handleChatStreamEnd = (message: WsMessage) => {
// if (message.type === 'ChatStreamEnd') { // if (message.type === 'ChatStreamEnd') {
// setUserMessages(prevMessages => { // setUserMessages(prevMessages => {
// const newMessages = [...prevMessages]; // const newMessages = [...prevMessages];
// const lastMessage = newMessages[newMessages.length - 1]; // const lastMessage = newMessages[newMessages.length - 1];
// if (lastMessage && lastMessage.role === Assistant) { // if (lastMessage && lastMessage.role === Assistant) {
// // 使用最终消息替换流式消息,确保 message.message 存在 // // 使用最终消息替换流式消息,确保 message.message 存在
// if (message.message) { // if (message.message) {
// newMessages[newMessages.length - 1] = message.message as Message; // newMessages[newMessages.length - 1] = message.message as Message;
// } else { // } else {
// // 如果最终消息为空,则移除 'keepSearchIng' 占位符 // // 如果最终消息为空,则移除 'keepSearchIng' 占位符
// return prevMessages.filter(m => !(typeof m.content === 'string' && m.content === 'keepSearchIng')); // return prevMessages.filter(m => !(typeof m.content === 'string' && m.content === 'keepSearchIng'));
// } // }
// } // }
// return newMessages; // return newMessages;
// }); // });
// } // }
// }; // };
// const handleError = (message: WsMessage) => { // const handleError = (message: WsMessage) => {
// if (message.type === 'Error') { // if (message.type === 'Error') {
// console.log(`WebSocket Error: ${message.code} - ${message.message}`); // console.log(`WebSocket Error: ${message.code} - ${message.message}`);
// // 可以在这里添加错误提示,例如替换最后一条消息为错误信息 // // 可以在这里添加错误提示,例如替换最后一条消息为错误信息
// setUserMessages(prev => { // setUserMessages(prev => {
// // 创建新的数组和新的消息对象 // // 创建新的数组和新的消息对象
// return prev.map((msg, index) => { // return prev.map((msg, index) => {
// if (index === prev.length - 1 && // if (index === prev.length - 1 &&
// typeof msg.content === 'string' && // typeof msg.content === 'string' &&
// msg.content === 'keepSearchIng') { // msg.content === 'keepSearchIng') {
// // 返回新的消息对象 // // 返回新的消息对象
// return { // return {
// ...msg, // ...msg,
// content: getWebSocketErrorMessage(message.code, t) // content: getWebSocketErrorMessage(message.code, t)
// }; // };
// } // }
// return msg; // return msg;
// }); // });
// }); // });
// } // }
// }; // };
// webSocketManager.subscribe('ChatStream', handleChatStream); // webSocketManager.subscribe('ChatStream', handleChatStream);
// webSocketManager.subscribe('ChatStreamEnd', handleChatStreamEnd); // webSocketManager.subscribe('ChatStreamEnd', handleChatStreamEnd);
// webSocketManager.subscribe('Error', handleError); // webSocketManager.subscribe('Error', handleError);
// return () => { // return () => {
// webSocketManager.unsubscribe('ChatStream', handleChatStream); // webSocketManager.unsubscribe('ChatStream', handleChatStream);
// webSocketManager.unsubscribe('ChatStreamEnd', handleChatStreamEnd); // webSocketManager.unsubscribe('ChatStreamEnd', handleChatStreamEnd);
// webSocketManager.unsubscribe('Error', handleError); // webSocketManager.unsubscribe('Error', handleError);
// // 可以在这里选择断开连接,或者保持连接以加快下次进入页面的速度 // // 可以在这里选择断开连接,或者保持连接以加快下次进入页面的速度
// // webSocketManager.disconnect(); // // webSocketManager.disconnect();
// }; // };
// }, []) }, [])
// ); );
useEffect(() => { useEffect(() => {
if (sessionId) { if (sessionId) {