添加开始游戏前,进行连接检测

This commit is contained in:
kron
2025-06-28 22:44:30 +08:00
parent 77691c411a
commit 21b3e38ff0
9 changed files with 41 additions and 21 deletions

View File

@@ -13,14 +13,18 @@ const RECONNECT_CONFIG = {
/**
* 建立 WebSocket 连接
*/
function createWebSocket(token, onUpdate, onMessage) {
function createWebSocket(token, onMessage) {
const url = `wss://api.shelingxingqiu.com/socket?authorization=${token}`;
socket = uni.connectSocket({
url,
success: () => {
console.log("websocket 连接成功");
onUpdate(true);
reconnectCount = 0; // 重置重连次数
// 启动心跳
startHeartbeat();
},
fail: () => {
reconnect(onMessage);
},
});
@@ -38,19 +42,15 @@ function createWebSocket(token, onUpdate, onMessage) {
uni.onSocketClose((result) => {
console.log("WebSocket 已关闭", result);
onUpdate(false);
stopHeartbeat();
reconnect(onUpdate, onMessage);
reconnect(onMessage);
});
// 启动心跳
startHeartbeat();
}
/**
* 重连机制
*/
function reconnect(onUpdate, onMessage) {
function reconnect(onMessage) {
if (reconnectCount >= RECONNECT_CONFIG.MAX_COUNT) return;
reconnectTimer && clearTimeout(reconnectTimer);
@@ -64,7 +64,7 @@ function reconnect(onUpdate, onMessage) {
);
reconnectTimer = setTimeout(() => {
console.log("reconnecting...");
createWebSocket(token, onUpdate, onMessage);
createWebSocket(token, onMessage);
reconnectCount++;
}, delay);
}