xiaoyong931011
2023-01-17 a6fed8c500755a00cb96ea20e5b4ae59bf4e6d6d
src/main/java/cc/mrbird/febs/mall/chain/service/ChainService.java
@@ -3,9 +3,11 @@
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.web3j.crypto.Credentials;
import org.web3j.protocol.Web3j;
import org.web3j.protocol.core.DefaultBlockParameter;
@@ -18,7 +20,9 @@
import org.web3j.tx.gas.StaticGasProvider;
import java.math.BigInteger;
import java.net.ConnectException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.HashMap;
import java.util.Map;
@@ -83,6 +87,29 @@
            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 {
            web3j = Web3j.build(ws);
            ChainEnum chain = ChainEnum.getValueByName(type);
            assert chain != null;