Beispiel #1
0
 /// <summary>
 /// 协议解析处理
 /// </summary>
 /// <param name="dates">协议数据</param>
 /// <param name="sessionID">连接SessionID</param>
 /// <returns>是否解析成功</returns>
 public bool Parse(RecvedProtocolDataInfo protoData)
 {
     m_protoData = protoData;
     if (InternalProtocolClientHelper.IntepretMessage(m_protoData.m_Datas, this))
     {
         return(true);
     }
     if (InternalProtocolServerHelper.IntepretMessage(m_protoData.m_Datas, this))
     {
         return(true);
     }
     return(false);
 }
Beispiel #2
0
        /// <summary>
        /// 连接服务器成功
        /// </summary>
        /// <param name="svrinfo">服务器信息</param>
        /// <param name="sessionID"></param>
        public void OnConnectSvrSucc(ref com.tieao.mmo.interval.PtServerInfo svrinfo)
        {
            SvLogger.Info("OnConnectSvrSucc Begin : ServerType={0}, IP={1}, Port={2}.", svrinfo.m_Type, svrinfo.m_Address, svrinfo.m_Port);

            if (Network.NetworkManager.Instance.IsNeedRegistServer(svrinfo.m_Type))
            {
                SvLogger.Info("     RegServer To {2} Server : IP={0}, Port={1}.", svrinfo.m_Address, svrinfo.m_Port, svrinfo.m_Type);
                if (Network.NetworkManager.Instance.HadRegistedServer(svrinfo.m_Type) == true)
                {
                    //去重新注册
                    Network.NetworkManager.Instance.SendMessageToServer(m_protoData.m_SessionID, InternalProtocolServerHelper.ReRegisterSvr(SvrCommCfg.Instance.ServerInfo));
                }
                else
                {
                    //去注册
                    Network.NetworkManager.Instance.SendMessageToServer(m_protoData.m_SessionID, InternalProtocolServerHelper.RegisterSvr(SvrCommCfg.Instance.ServerInfo));
                }
            }
            else
            {
                svrinfo.m_SessionID = m_protoData.m_SessionID;
                int errCode = RegServerManager.Instance.RegServer(ref svrinfo);
                if (errCode != 0)
                {
                    SvLogger.Error("     RegServer Fail!");
                }
                else
                {
                    if (SvrCommCfg.Instance.ServerInfo.m_Type == eServerType.GAMEDATA && svrinfo.m_Type == eServerType.DATABASE)
                    {
                        //通知DBS可以发送数据过来
                        Network.NetworkManager.Instance.SendMessageToServer(m_protoData.m_SessionID, com.tieao.mmo.database4server.server.GDSUpdate2DBSServerHelper.RequestAllPlayerData());
                    }
                }
            }
            InternalProtocolDealDelegate.Instance.OnConnectServerSucc(svrinfo, "");
            SvLogger.Info("OnConnectSvrSucc Done.");
        }