添加开始游戏前,进行连接检测
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user