From 90473aa33326df65173da7672aa869ae18fbb4ab Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 24 Mar 2023 18:22:33 +0800
Subject: [PATCH] 后台修改

---
 src/main/java/cc/mrbird/febs/mall/chain/service/ChainService.java |   26 ++++++++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/chain/service/ChainService.java b/src/main/java/cc/mrbird/febs/mall/chain/service/ChainService.java
index cd0e8ef..9cde742 100644
--- a/src/main/java/cc/mrbird/febs/mall/chain/service/ChainService.java
+++ b/src/main/java/cc/mrbird/febs/mall/chain/service/ChainService.java
@@ -4,6 +4,7 @@
 import cc.mrbird.febs.mall.chain.enums.ChainEnum;
 import cc.mrbird.febs.mall.chain.enums.EthService;
 import cn.hutool.core.util.ObjectUtil;
+import com.alipay.api.java_websocket.enums.ReadyState;
 import io.reactivex.Flowable;
 import io.reactivex.disposables.Disposable;
 import io.reactivex.schedulers.Schedulers;
@@ -164,11 +165,36 @@
             Web3j web3j = Web3j.build(ws);
 
             EthUsdtContract ethUsdtContract = wssContract(chain.getPrivateKey(), chain.getContractAddress(), web3j);
+
             EthFilter filter = getFilter(startBlock, startBlock, chain.getContractAddress());
             Flowable<EthUsdtContract.TransferEventResponse> eventFlowable = ethUsdtContract.transferEventFlowable(filter);
+            while (!webSocketClient.getReadyState().equals(ReadyState.OPEN)) {
+                log.info("连接中···请稍后");
+                int retries = 3;
+                while (retries-- > 0) {
+                    try {
+                        Thread.sleep(1000);
+                        wssContractEventListener2(startBlock, event, type);
+                        return;
+                    } catch (Exception ex) {
+                        log.error("币安监听异常", ex);
+                    }
+                }
+                return;
+            }
             // 判断websocket是否连接成功
             if (!webSocketClient.isOpen()) {
                 log.error("WebSocket连接失败");
+                int retries = 3;
+                while (retries-- > 0) {
+                    try {
+                        Thread.sleep(1000);
+                        wssContractEventListener2(startBlock, event, type);
+                        return;
+                    } catch (Exception ex) {
+                        log.error("币安监听异常", ex);
+                    }
+                }
                 return;
             }
             // 订阅事件流,将事件编译和处理放到单独的线程中执行

--
Gitblit v1.9.1