/// <summary> /// 当服务组连接断开 /// </summary> /// <param name="sessionID">服务组连接sessionID</param> private void OnServerConnectionClose(ConnectionSession connSesion) { PtServerInfo svrInfo = null; if (m_connService.GetConnectServerInfo(ref svrInfo)) { ReconnectServerInfo reconnSvrInfo = new ReconnectServerInfo(svrInfo); SIReconnectManager.Instance.AddReconnectInfo(reconnSvrInfo); } else { ConnectIPPort ipPort = new ConnectIPPort(m_ip, m_port); SIReconnectManager.Instance.AddReconnectInfo(ipPort); } SIConnServiceManager.Instance.RemoveConnService(m_id); }
public void Update(int curSvrTime) { while (m_reconnSvrInfoList.First != null) { if (m_reconnSvrInfoList.First.Value.ReconnectTime < curSvrTime) { //重连 if (SIConnServiceManager.Instance.CreateConnService(m_reconnSvrInfoList.First.Value.m_SvrInfo) == false) { LinkedListNode <ReconnectServerInfo> reconnSvrInfoNode = m_reconnSvrInfoList.First; ReconnectServerInfo newInfo = new ReconnectServerInfo(reconnSvrInfoNode.Value.m_SvrInfo); m_reconnSvrInfoList.AddLast(newInfo); } m_reconnSvrInfoList.RemoveFirst(); } else { break; } } while (m_reconnIPPortList.First != null) { if (m_reconnIPPortList.First.Value.ReconnectTime < curSvrTime) { //重连 if (SIConnServiceManager.Instance.CreateConnService(m_reconnIPPortList.First.Value.m_IP, m_reconnIPPortList.First.Value.m_Port) == false) { LinkedListNode <ConnectIPPort> reconnIPPortNode = m_reconnIPPortList.First; ConnectIPPort newInfo = new ConnectIPPort(reconnIPPortNode.Value.m_IP, reconnIPPortNode.Value.m_Port); m_reconnIPPortList.AddLast(newInfo); } m_reconnIPPortList.RemoveFirst(); } else { break; } } }
public void AddReconnectInfo(ReconnectServerInfo reconnSvrInfo) { m_reconnSvrInfoList.AddLast(reconnSvrInfo); }