websocket优化

This commit is contained in:
kron
2025-06-22 02:39:03 +08:00
parent 322f23efb4
commit d075844cb0
6 changed files with 50 additions and 22 deletions

View File

@@ -40,7 +40,7 @@ function createWebSocket(token, onUpdate, onMessage) {
console.log("WebSocket 已关闭", result);
onUpdate(false);
stopHeartbeat();
reconnect(token, onMessage);
reconnect(onMessage);
});
// 启动心跳
@@ -50,17 +50,18 @@ function createWebSocket(token, onUpdate, onMessage) {
/**
* 重连机制
*/
function reconnect(token, onMessage) {
function reconnect(onMessage) {
if (reconnectCount >= RECONNECT_CONFIG.MAX_COUNT) return;
reconnectTimer && clearTimeout(reconnectTimer);
const token = uni.getStorageSync("token");
if (!token) return;
// 计算重连延迟(指数退避)
const delay = Math.min(
RECONNECT_CONFIG.INITIAL_DELAY * Math.pow(2, reconnectCount),
RECONNECT_CONFIG.MAX_DELAY
);
reconnectTimer = setTimeout(() => {
console.log("reconnecting...");
createWebSocket(token, onMessage);
@@ -70,11 +71,11 @@ function reconnect(token, onMessage) {
function closeWebSocket() {
if (socket) {
socket.close();
stopHeartbeat();
// 清理重连定时器
reconnectTimer && clearTimeout(reconnectTimer);
reconnectCount = 0;
reconnectTimer && clearTimeout(reconnectTimer);
stopHeartbeat();
socket.close();
}
}