feat:重连调整
This commit is contained in:
@@ -667,8 +667,26 @@ const sendWebSocketMessage = async (messageType, messageContent, options = {}) =
|
|||||||
console.log(`WebSocket消息已发送 [类型:${messageType}]:`, args);
|
console.log(`WebSocket消息已发送 [类型:${messageType}]:`, args);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// 若返回 false,准备重试
|
|
||||||
console.warn('webSocketManager.sendMessage 返回 false,准备重试', { attempt, args });
|
// 若返回 false,消息可能已经被 manager 入队并触发连接流程。
|
||||||
|
// 在这种情况下避免立即当作失败处理,而是等待短暂时间以观察连接是否建立并由 manager 发送队列。
|
||||||
|
console.warn('webSocketManager.sendMessage 返回 false,等待连接或队列发送...', { attempt, args });
|
||||||
|
const waitForConnectMs = typeof options.waitForConnectMs === 'number' ? options.waitForConnectMs : 5000;
|
||||||
|
if (webSocketManager && typeof webSocketManager.isConnected === 'function' && !webSocketManager.isConnected()) {
|
||||||
|
const startTs = Date.now();
|
||||||
|
while (Date.now() - startTs < waitForConnectMs) {
|
||||||
|
await sleep(200);
|
||||||
|
if (webSocketManager.isConnected()) {
|
||||||
|
// 给 manager 一点时间处理队列并发送
|
||||||
|
await sleep(150);
|
||||||
|
console.log('检测到 manager 已连接,假定队列消息已发送', args);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.warn('等待 manager 建连超时,进入重试逻辑', { waitForConnectMs, args });
|
||||||
|
} else {
|
||||||
|
console.warn('sendMessage 返回 false 但 manager 看起来已连接或不可用,继续重试', { args });
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('发送WebSocket消息异常:', error, args);
|
console.error('发送WebSocket消息异常:', error, args);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user