Ejemplo n.º 1
0
        /// <summary>
        /// 有服务来注册
        /// </summary>
        /// <param name="svrInfo">服务信息</param>
        /// <param name="sessionID"></param>
        public void OnRegisterSvr(ref com.tieao.mmo.interval.PtServerInfo svrInfo)
        {
            SvLogger.Info("OnRegisterSvr Begin: ServerType={0}, ServerName={1}, sessionID={2}.", svrInfo.m_Type, svrInfo.m_Name, m_protoData.m_SessionID);
            svrInfo.m_SessionID = m_protoData.m_SessionID;

            int errCode = RegServerManager.Instance.RegServer(ref svrInfo);

            if (errCode == 0)
            {
                ServerCommon.Network.NetworkManager.Instance.OnServerRegist(svrInfo);

                PtServerList connectSvrList = null;
                //注册成功
                if (SvrCommCfg.Instance.ServerInfo.m_Type == eServerType.CENTER)
                {
                    connectSvrList = RegServerManager.Instance.GetServerListWithout(ref svrInfo);
                }
                else
                {
                    connectSvrList = new PtServerList();
                }
                Network.NetworkManager.Instance.SendMessageToServer(m_protoData.m_SessionID, InternalProtocolClientHelper.RegisterSvrOK(RegServerManager.Instance.m_SelfSvrInfo, connectSvrList));
                SvLogger.Info("OnRegisterSvr OK: ServerType={0}, ServerName={1}, sessionID={2}.", svrInfo.m_Type, svrInfo.m_Name, m_protoData.m_SessionID);

                InternalProtocolDealDelegate.Instance.OnRegistServer(svrInfo, "Succ");

                if (SvrCommCfg.Instance.ServerInfo.m_Type == eServerType.CENTER)
                {
                    ByteArray sendData = InternalProtocolClientHelper.ReportServerID(SvrCommCfg.Instance.ServerInfo.m_ServerID);
                    Network.NetworkManager.Instance.SendMessageToServer(m_protoData.m_SessionID, sendData);
                }
            }
            else
            {
                //注册失败
                Network.NetworkManager.Instance.SendMessageToServer(m_protoData.m_SessionID, InternalProtocolClientHelper.RegisterSvrFail(errCode, RegServerManager.Instance.m_SelfSvrInfo));
                SvLogger.Info("OnRegisterSvr Fail: ServerType={0}, ServerName={1}, sessionID={2}, ErrCode={3}.", svrInfo.m_Type, svrInfo.m_Name, m_protoData.m_SessionID, errCode);

                InternalProtocolDealDelegate.Instance.OnRegistServer(svrInfo, "Fail");
            }
        }