private void ChangeStatus(SESSION_STATUS status) { m_cStatus = status; if (status == SESSION_STATUS.CONNECT_SUCCESS) { if (mCallback != null) { mCallback(EVENT.CONNECTED, null, null); } } if (status == SESSION_STATUS.CONNECT_FAILED_CONNECT_ERROR) { if (mCallback != null) { mCallback(EVENT.CONNECT_FAILED, null, "connect error"); } } if (status == SESSION_STATUS.CONNECT_FAILED_TIME_OUT) { if (mCallback != null) { mCallback(EVENT.CONNECT_FAILED, null, "connect time out"); } } if (status == SESSION_STATUS.CONNECT_EXIT) { if (mCallback != null) { mCallback(EVENT.CONNECT_DISCONNECT, null, "disconnect"); } } }
private SESSION_STATUS m_cStatus; //会话状态 public ClientSession(DispatchFactoryBase dispatchFactory) { this.m_cStatus = SESSION_STATUS.NO_CONNECT; this.m_cDispatchFactory = dispatchFactory; this.m_cReceiveBuffer = new StreamBuffer(); this.m_cSendBuffer = new StreamBuffer(); this.m_cSendQueue = new NetQueue <PacketBase>(64 * 256); this.m_cSendQueue.Clear(); this.m_bStartReConnect = false; }
private string m_strAddress; //连接地址 #endregion Fields #region Constructors public ClientSession( DispatchFactoryBase dispatchFactory ) { this.m_cStatus = SESSION_STATUS.NO_CONNECT; this.m_cDispatchFactory = dispatchFactory; this.m_cReceiveBuffer = new StreamBuffer(); this.m_cSendBuffer = new StreamBuffer(); this.m_cSendQueue = new NetQueue<PacketBase>(64 * 256); this.m_cSendQueue.Clear(); this.m_bStartReConnect = false; }
public TCPSession(System.Action <EVENT, byte[], string> _callback) { mReceiveArray = new byte[RECEIVE_MAX_NUM]; m_cStatus = SESSION_STATUS.NO_CONNECT; m_cReceiveBuffer = new StreamBuffer(); m_cSendBuffer = new StreamBuffer(); mQueSend = new Queue <byte[]>(); m_cReceiveQueue = new SwitchQueue <byte[]>(128); mCallback = _callback; }
/// <summary> /// 逻辑更新 /// </summary> /// <returns></returns> public override bool Update() { if (this.m_cStatus == SESSION_STATUS.CONNECT_SUCCESS) { if (this.m_cDispatch != null) { this.m_cDispatch.Update(); } } //判断连接异常断开 if (this.m_cStatus == SESSION_STATUS.CONNECT_SUCCESS && !this.m_cSocket.Connected) { this.m_cDispatch.OnDisconnect(); this.m_cStatus = SESSION_STATUS.NO_CONNECT; if (this.m_iReConnectSecond >= 0) //设置重连 { this.m_bStartReConnect = true; this.m_lStartReConnectTime = DateTime.Now.Ticks; } } //判断重连 if (this.m_bStartReConnect) { if (DateTime.Now.Ticks - this.m_lStartReConnectTime >= this.m_iReConnectSecond) { this.m_bStartReConnect = false; ReConnect(); } } for (int i = 0; i < 5; i++) { Send(); } return(true); }
public SESSION_STATUS GetSessionStatus(string Token) { SESSION_STATUS sessionStatus = SESSION_STATUS.UNKNOW; SessionModel session = GetSession(Token); if (session == null) { sessionStatus = SESSION_STATUS.NOTEXIST; return(sessionStatus); } if (DateTime.Compare((DateTime)session.ValidDay, DateTime.Now) > 0) { sessionStatus = SESSION_STATUS.AVAILABLE; } else { sessionStatus = SESSION_STATUS.EXPIRED; } return(sessionStatus); }
/// <summary> /// 更换 /// </summary> /// <param name="status"></param> protected override void ChangeStatus(SESSION_STATUS status) { this.m_cStatus = status; }
public abstract SESSION_STATUS GetStatus(); //获取会话状态 protected abstract void ChangeStatus(SESSION_STATUS status); //更换状态
/// <summary> /// 更改会话状态 /// </summary> /// <param name="status"></param> protected override void ChangeStatus(SESSION_STATUS status) { this.m_cStatus = status; }
/// <summary> /// 逻辑更新 /// </summary> /// <returns></returns> public override bool Update() { if (this.m_cStatus == SESSION_STATUS.CONNECT_SUCCESS) { if (this.m_cDispatch != null) { this.m_cDispatch.Update(); } } //判断连接异常断开 if (this.m_cStatus == SESSION_STATUS.CONNECT_SUCCESS && !this.m_cSocket.Connected) { this.m_cDispatch.OnDisconnect(); this.m_cStatus = SESSION_STATUS.NO_CONNECT; if (this.m_iReConnectSecond >= 0) //设置重连 { this.m_bStartReConnect = true; this.m_lStartReConnectTime = DateTime.Now.Ticks; } } //判断重连 if (this.m_bStartReConnect) { if (DateTime.Now.Ticks - this.m_lStartReConnectTime >= this.m_iReConnectSecond) { this.m_bStartReConnect = false; ReConnect(); } } for (int i = 0; i < 5; i++) { Send(); } return true; }
protected abstract void ChangeStatus(SESSION_STATUS status);