From 5fc7472d0ec6bff69b874f33eeccc30541f7f6df Mon Sep 17 00:00:00 2001
From: songjun <leon0756@gmail.com>
Date: 星期五, 15 七月 2022 19:55:44 +0800
Subject: [PATCH] fix socket reconnect bug

---
 src/samples/sockteStomp.ts |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/samples/sockteStomp.ts b/src/samples/sockteStomp.ts
index 1c8cd86..bb325ce 100644
--- a/src/samples/sockteStomp.ts
+++ b/src/samples/sockteStomp.ts
@@ -160,8 +160,11 @@
         
     }
 }
+var isErrConnectBackCalled = false;
 const connectCallback=function(){
+    isErrConnectBackCalled = true
     const pcName= sockteStore().pcName
+    console.log("链接成功",stompClient,pcName)
     // 订阅患者信息服务
     if(stompClient!==null){
         // 订阅患者信息事件
@@ -172,12 +175,12 @@
         stompClient.send(`/app/workstation/config/set/${clientCode}/${pcName}`,{},JSON.stringify({"clientCode":clientCode,"machineName":pcName}))
         
     }
-    console.log("链接成功",stompClient,pcName)
+    
     // 更新sockte链接状态
     sockteStore().setsockteIsLink(true)
     console.log(sockteStore().isLink)
     console.log(devices)
-    if(devices!==undefined&&devices.length>0){
+    if(devices!==undefined&&devices!=null &&devices.length>0){
         devices.forEach(de=>{
             if(stompClient!==null){
                 stompClient.subscribe(`/queue/${clientCode}/${de.deviceName}/result`,callback)
@@ -188,15 +191,20 @@
         })
     }
 }
+
+const disconnectCallBack=function(){
+    console.log("disconnect");
+}
+
 const error_callback=function(error:any){
     console.log('链接错误',error);
     setTimeout(()=>{
         console.log('10秒之后重连')
         console.log(devices,'设备列表')
         const socket = new WebSocket('ws://hemobs.icoldchain.cn/broadcast')
+        stompClient?.disconnect(disconnectCallBack,{})
         stompClient = Stomp.over(socket)
         stompClient.connect({}, connectCallback,error_callback)
-
     },10000)
 }
 // 创建客户端链接

--
Gitblit v1.8.0