package com.easysocket.connection.reconnect;
|
|
import com.easysocket.entity.OriginReadData;
|
import com.easysocket.entity.SocketAddress;
|
import com.easysocket.interfaces.conn.IConnectionManager;
|
import com.easysocket.interfaces.conn.IReconnListener;
|
import com.easysocket.interfaces.conn.SocketActionListener;
|
|
/**
|
* Author:Alex
|
* Date:2019/5/31
|
* Note:抽象重连器
|
*/
|
public abstract class AbsReconnection extends SocketActionListener implements IReconnListener {
|
/**
|
* 连接管理器
|
*/
|
protected IConnectionManager connectionManager;
|
/**
|
* socket连接管理器是否已销毁
|
*/
|
protected boolean isDetach;
|
|
|
@Override
|
public synchronized void attach(IConnectionManager iConnectionManager) {
|
if (!isDetach) {
|
detach();
|
}
|
isDetach = false;
|
connectionManager = iConnectionManager;
|
connectionManager.subscribeSocketAction(this); // 监听socket行为
|
}
|
|
@Override
|
public synchronized void detach() {
|
isDetach = true;
|
if (connectionManager != null)
|
connectionManager.unSubscribeSocketAction(this);
|
}
|
|
@Override
|
public void onSocketResponse(SocketAddress socketAddress, OriginReadData originReadData) {
|
// donothing
|
}
|
|
/**
|
* 是否正在重连
|
* @return
|
*/
|
public abstract boolean isReconning();
|
}
|