From f7c7a1d550444e88c8f7033a8a586211ab8c3ce7 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 17 Jan 2023 21:04:02 +0800
Subject: [PATCH] 1
---
src/main/java/cc/mrbird/febs/mall/chain/service/ChainService.java | 71 +++++++++++++++++++++++++----------
1 files changed, 51 insertions(+), 20 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 db98065..deacdd9 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
@@ -3,9 +3,12 @@
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.mall.chain.enums.ChainEnum;
import cc.mrbird.febs.mall.chain.enums.EthService;
+import cn.hutool.core.util.ObjectUtil;
import io.reactivex.Flowable;
import io.reactivex.disposables.Disposable;
import lombok.extern.slf4j.Slf4j;
+import org.java_websocket.WebSocket;
+import org.java_websocket.exceptions.WebsocketNotConnectedException;
import org.web3j.crypto.Credentials;
import org.web3j.protocol.Web3j;
import org.web3j.protocol.core.DefaultBlockParameter;
@@ -80,37 +83,65 @@
WebSocketService ws = null;
WebSocketClient webSocketClient = null;
Web3j web3j = null;
+ ChainEnum chain = ChainEnum.getValueByName(type);
+
+// try {
+// webSocketClient = new WebSocketClient(new URI("wss://bsc-mainnet.nodereal.io/ws/v1/78074065950e4915aef4f12b6f357d16"));
+// ws = new WebSocketService(webSocketClient, true);
+// ws.connect();
+// } catch (Exception e) {
+// try {
+// ws.close();
+// //TODO
+// if(ObjectUtil.isEmpty(webSocketClient)){
+// webSocketClient = new WebSocketClient(new URI("wss://bsc-mainnet.nodereal.io/ws/v1/78074065950e4915aef4f12b6f357d16"));
+// ws = new WebSocketService(webSocketClient, true);
+// ws.connect();
+// }
+// WebSocket.READYSTATE readyState = webSocketClient.getReadyState();
+// if((WebSocket.READYSTATE.OPEN != readyState
+// && WebSocket.READYSTATE.CONNECTING != readyState)){
+// webSocketClient = new WebSocketClient(new URI("wss://bsc-mainnet.nodereal.io/ws/v1/78074065950e4915aef4f12b6f357d16"));
+// ws = new WebSocketService(webSocketClient, true);
+// ws.connect();
+// }
+// } catch (Exception connectException) {
+// connectException.printStackTrace();
+// }
+// }
+
try {
webSocketClient = new WebSocketClient(new URI("wss://bsc-mainnet.nodereal.io/ws/v1/78074065950e4915aef4f12b6f357d16"));
ws = new WebSocketService(webSocketClient, true);
ws.connect();
- } catch (Exception e) {
- try {
- ws.close();
+ web3j = Web3j.build(ws);
+ assert chain != null;
+ try{
+ EthUsdtContract ethUsdtContract = wssContract(chain.getPrivateKey(), chain.getContractAddress(), web3j);
+ EthFilter filter = getFilter(startBlock, startBlock, chain.getContractAddress());
+ Flowable<EthUsdtContract.TransferEventResponse> eventFlowable = ethUsdtContract.transferEventFlowable(filter);
+ Disposable subscribe = eventFlowable.subscribe(event::compile, error -> {
+ log.error("币安监听异常", error);
+
+ });
+ }catch(WebsocketNotConnectedException e){
+ ws.close();
webSocketClient = new WebSocketClient(new URI("wss://bsc-mainnet.nodereal.io/ws/v1/78074065950e4915aef4f12b6f357d16"));
ws = new WebSocketService(webSocketClient, true);
ws.connect();
- } catch (Exception connectException) {
- connectException.printStackTrace();
+ web3j = Web3j.build(ws);
+ assert chain != null;
+ EthUsdtContract ethUsdtContract = wssContract(chain.getPrivateKey(), chain.getContractAddress(), web3j);
+ EthFilter filter = getFilter(startBlock, startBlock, chain.getContractAddress());
+ Flowable<EthUsdtContract.TransferEventResponse> eventFlowable = ethUsdtContract.transferEventFlowable(filter);
+ Disposable subscribe = eventFlowable.subscribe(event::compile, error -> {
+ log.error("币安监听异常", error);
+
+ });
}
- }
-
- try {
- web3j = Web3j.build(ws);
- ChainEnum chain = ChainEnum.getValueByName(type);
- assert chain != null;
-
- EthUsdtContract ethUsdtContract = wssContract(chain.getPrivateKey(), chain.getContractAddress(), web3j);
- EthFilter filter = getFilter(startBlock, startBlock, chain.getContractAddress());
-
-
- Flowable<EthUsdtContract.TransferEventResponse> eventFlowable = ethUsdtContract.transferEventFlowable(filter);
- Disposable subscribe = eventFlowable.subscribe(event::compile, error -> {
- log.error("币安监听异常", error);
- });
} catch (Exception e) {
e.printStackTrace();
}
--
Gitblit v1.9.1