feat: WebSocket链接状态管理

This commit is contained in:
zoujing
2025-09-16 15:45:03 +08:00
parent 3e34f68406
commit 5849411e89

View File

@@ -212,6 +212,8 @@ let commonType = "";
// WebSocket 相关 // WebSocket 相关
let webSocketManager = null; let webSocketManager = null;
/// WebSocket 连接状态
let webSocketConnectStatus = false;
// 打字机管理器 // 打字机管理器
let typewriterManager = null; let typewriterManager = null;
// 当前会话的消息ID用于保持发送和终止的messageId一致 // 当前会话的消息ID用于保持发送和终止的messageId一致
@@ -442,12 +444,14 @@ const initWebSocket = () => {
// 连接成功回调 // 连接成功回调
onOpen: (event) => { onOpen: (event) => {
// 重置会话状态 // 重置会话状态
webSocketConnectStatus = true;
isSessionActive.value = true; isSessionActive.value = true;
}, },
// 连接断开回调 // 连接断开回调
onClose: (event) => { onClose: (event) => {
console.error("WebSocket连接断开:", event); console.error("WebSocket连接断开:", event);
webSocketConnectStatus = false;
// 停止当前会话 // 停止当前会话
isSessionActive.value = false; isSessionActive.value = false;
// 停止打字机效果 // 停止打字机效果
@@ -458,6 +462,7 @@ const initWebSocket = () => {
// 错误回调 // 错误回调
onError: (error) => { onError: (error) => {
webSocketConnectStatus = false;
isSessionActive.value = false; isSessionActive.value = false;
console.error("WebSocket错误:", error); console.error("WebSocket错误:", error);
}, },
@@ -475,7 +480,9 @@ const initWebSocket = () => {
}); });
// 初始化连接 // 初始化连接
webSocketManager.connect().catch((error) => { webSocketManager.connect().then(() => {
webSocketConnectStatus = true;
}).catch((error) => {
console.error("WebSocket连接失败:", error); console.error("WebSocket连接失败:", error);
}); });
}; };
@@ -601,6 +608,15 @@ const initData = () => {
// 发送消息的参数拼接 // 发送消息的参数拼接
const sendMessage = (message, isInstruct = false) => { const sendMessage = (message, isInstruct = false) => {
console.log("发送的消息:", message); console.log("发送的消息:", message);
if (!webSocketConnectStatus) {
uni.showToast({
title: "当前网络异常,请稍后重试",
icon: "none",
});
return;
}
if (!appStore.hasToken) { if (!appStore.hasToken) {
console.log("没有token跳转到登录页"); console.log("没有token跳转到登录页");
goLogin(); goLogin();