websocket优化
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user