[change]修改重连时,可能引起的崩溃
This commit is contained in:
@@ -54,8 +54,6 @@ public class FpgaSocket implements IWebSocket {
|
||||
private IWebSocketConnectListener mWebSocketConnectListener;
|
||||
|
||||
|
||||
private OkHttpClient.Builder okBuilder;
|
||||
|
||||
private String wsHost;
|
||||
private String ipAddress;
|
||||
private int port;
|
||||
@@ -82,25 +80,19 @@ public class FpgaSocket implements IWebSocket {
|
||||
}
|
||||
|
||||
private void init() {
|
||||
if (listener == null) {
|
||||
listener = new EchoWebSocketListener();
|
||||
}
|
||||
if (okBuilder == null) {
|
||||
okBuilder = new OkHttpClient.Builder();
|
||||
okBuilder.writeTimeout(4, TimeUnit.SECONDS)
|
||||
.readTimeout(4, TimeUnit.SECONDS)
|
||||
.connectTimeout(2, TimeUnit.SECONDS);
|
||||
ReceiveTimeoutManager.getInstance().setListener(new ReceiveTimeoutManager.OnTimeoutListener() {
|
||||
@Override
|
||||
public void onTimeout(double time) {
|
||||
receiveTimeoutReason = "心跳超时(" + time + "秒)";
|
||||
onPassiveClose(1001, receiveTimeoutReason);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (client == null) {
|
||||
client = okBuilder.build();
|
||||
}
|
||||
listener = new EchoWebSocketListener();
|
||||
OkHttpClient.Builder okBuilder = new OkHttpClient.Builder();
|
||||
okBuilder.writeTimeout(4, TimeUnit.SECONDS)
|
||||
.readTimeout(4, TimeUnit.SECONDS)
|
||||
.connectTimeout(2, TimeUnit.SECONDS);
|
||||
ReceiveTimeoutManager.getInstance().setListener(new ReceiveTimeoutManager.OnTimeoutListener() {
|
||||
@Override
|
||||
public void onTimeout(double time) {
|
||||
receiveTimeoutReason = "心跳超时(" + time + "秒)";
|
||||
onPassiveClose(1001, receiveTimeoutReason);
|
||||
}
|
||||
});
|
||||
client = okBuilder.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -111,12 +103,11 @@ public class FpgaSocket implements IWebSocket {
|
||||
isPassiveClose.set(false);
|
||||
wsHost = WS_IP_HOST_HEAD + address + String.format(Locale.getDefault(), RESOURCE_PATH, port);
|
||||
CupidLogUtils.i(TAG, "WebSocket 主动连接= " + wsHost);
|
||||
init();
|
||||
connect("连接中");
|
||||
}
|
||||
|
||||
private void connect(String msg) {
|
||||
if (client != null && mWebSocket == null) {
|
||||
if (mWebSocket == null) {
|
||||
if (mWebSocketConnectListener != null)
|
||||
mWebSocketConnectListener.onConnecting(msg);
|
||||
Request request = new Request.Builder()
|
||||
@@ -157,8 +148,6 @@ public class FpgaSocket implements IWebSocket {
|
||||
} else {
|
||||
onConnectFailed(null);
|
||||
}
|
||||
listener = null;
|
||||
client = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user