WebSocketDemo
WebSocketDemo copied to clipboard
使用新的 Setting 重新创建连接,有时会出现连接很久的情况
/**
* 通过 {@link ReconnectManager} 开始重接
*/
public WebSocketManager reconnect() {
disconnect = false;
if (mReconnectManager == null) {
mReconnectManager = getDefaultReconnectManager();
}
//设置新的Setting时,会出现链接需要很久的情况,原因是:reconnecting()返回true
if (!mReconnectManager.reconnecting()) {
mReconnectManager.startReconnect();
}
return this;
}
/**
* 使用新的 Setting 重新创建连接,同时会销毁之前的连接
*/
public WebSocketManager reconnect(WebSocketSetting setting) {
disconnect = false;
if (destroyed) {
LogUtil.e(TAG, "This WebSocketManager is destroyed!");
return this;
}
this.mSetting = setting;
if (mWebSocket != null) {
mWebSocket.destroy();
mWebSocket = null;
}
start();//最后也会调用reconnect()
return this;
}
我的解决:
/**
* 通过 {@link ReconnectManager} 开始重接
*/
public WebSocketManager reconnect(boolean isNewSetting) {
disconnect = false;
if (mReconnectManager == null || isNewSetting) {//todo 新的setting时强制初始化
mReconnectManager = getDefaultReconnectManager();
}
//todo 设置新的Setting时,会出现链接需要很久的情况,原因是:reconnecting()返回true
if (!mReconnectManager.reconnecting()) {
mReconnectManager.startReconnect();
}
return this;
}
大佬,还有更好的解决方法吗?