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(); }