Bladeren bron

feat(WebSocket): 添加重连次数限制防止无限重连

在WebSocket断开时增加重连计数器,当重连次数超过10次时停止自动重连
allen 2 weken geleden
bovenliggende
commit
fea7abcf8e
2 gewijzigde bestanden met toevoegingen van 14 en 2 verwijderingen
  1. 7 1
      pages/cb/shuifeizsFirst/control.vue
  2. 7 1
      pages/cb/shuifeizsFirst/shuifeizs.vue

+ 7 - 1
pages/cb/shuifeizsFirst/control.vue

@@ -81,6 +81,7 @@ export default {
       info: null,
       sfToken: '',
       entityId: '',
+      reconnectCount: 0,
     };
   },
   methods: {
@@ -145,7 +146,12 @@ export default {
       uni.onSocketClose(() => {
         console.warn('WebSocket 已断开,3 秒后尝试重连');
         clearInterval(this.heartbeatTimer);
-        setTimeout(() => this.initWebSocket(), 3000);
+        this.reconnectCount = (this.reconnectCount || 0) + 1;
+        if (this.reconnectCount <= 10) {
+          setTimeout(() => this.initWebSocket(), 3000);
+        } else {
+          console.warn('WebSocket 重连次数已达上限,停止重连');
+        }
       });
     },
     getChecked(item) {

+ 7 - 1
pages/cb/shuifeizsFirst/shuifeizs.vue

@@ -109,6 +109,7 @@ export default {
       info: {},
       dataArray:[],
       webSockedData: {},
+      reconnectCount: 0,
     };
   },
   components: {
@@ -204,7 +205,12 @@ export default {
       uni.onSocketClose(() => {
         console.warn('WebSocket 已断开,3 秒后尝试重连');
         clearInterval(this.heartbeatTimer);
-        setTimeout(() => this.initWebSocket(), 3000);
+        this.reconnectCount = (this.reconnectCount || 0) + 1;
+        if (this.reconnectCount <= 10) {
+          setTimeout(() => this.initWebSocket(), 3000);
+        } else {
+          console.warn('WebSocket 重连次数已达上限,停止重连');
+        }
       });
     },
     mergeTwoObject(firstObject, secondObject) {