Ejemplo n.º 1
0
    public void RequestServerState()
    {
        string ipInfo = "127.0.0.1";// Config.GetUpdaterConfig("StateServerPath", "Value");

        if (string.IsNullOrEmpty(ipInfo))
        {
            //状态服务器地址没有配置/
            LogSystem.LogError("RequestServerState --> ipinfo not in config!");
            return;
        }

        string[] ipinfoStrs = UtilTools.Split(ipInfo, ':');
        if (ipinfoStrs.Length < 3)
        {
            LogSystem.LogError("RequestServerState -->ipinfo config Error");
            return;
        }

        ip       = ipinfoStrs[0];
        port     = UtilTools.IntParse(ipinfoStrs[1]);
        issuerId = UtilTools.IntParse(ipinfoStrs[2]);

        ServerStateSock sock = new ServerStateSock(OnTextSockConnected, OnTextSockConnectFailed, OnTextSockRecieveData);

        if (sock != null)
        {
            sock.Connect(ip, port);
        }
        dataIsReady = false;

        TimerManager.AddTimer("StateReqOverTime", 10f, StateReqListener);
        //#endif
    }
Ejemplo n.º 2
0
    /// <summary>
    /// 文本协议socket连接失败
    /// </summary>
    /// <param name="textSock"></param>
    static void OnTextSockConnectFailed(ServerStateSock textSock)
    {
        LogSystem.LogError("OnTextSockConnectFailed");
        textSock.Disconnect();
        instance.dataIsReady = false;

        if (instance.onServerListOK != null)
        {
            instance.onServerListOK(false);
        }

        LogSystem.LogError("RequestServerState -->Can't get server list data!");
    }
Ejemplo n.º 3
0
 /// <summary>
 /// 文本协议socket连接成功
 /// </summary>
 /// <param name="textSock"></param>
 static void OnTextSockConnected(ServerStateSock textSock)
 {
     LogSystem.Log("OnTextSockConnected");
     if (textSock != null)
     {
         ByteArray byteArray = new ByteArray();
         byteArray.WriteInt(0);
         byteArray.WriteInt(0);
         byteArray.WriteInt(1);
         byteArray.WriteInt(0);
         byteArray.WriteInt(44);
         byteArray.WriteInt(instance.issuerId);
         bool arrayRight = byteArray.WriteEnd();
         if (arrayRight)
         {
             textSock.Send(byteArray.m_pData, byteArray.m_nCurPosi);
         }
     }
 }
Ejemplo n.º 4
0
    /// <summary>
    /// 文本协议Socket消息接受,只用于获取服务器列表数据
    /// </summary>
    /// <param name="textSock"></param>
    /// <param name="args"></param>
    static void OnTextSockRecieveData(ServerStateSock textSock, ref VarList args)
    {
        LogSystem.Log("OnTextSockRecieveData");

        instance.serverList.Clear();

        int serverCount = args.GetInt(0);
        int index       = 1;

        for (int i = 0; i < serverCount; i++)
        {
            string serverDataStr = args.GetString(index);
            index++;

            string[] dataArray = UtilTools.Split(serverDataStr, '/');
            //LoginUI.ServerInfo info = new LoginUI.ServerInfo();
            //info.mId = int.Parse(dataArray[0]);
            //info.mServerName = dataArray[1];
            //info.mIp = dataArray[2];
            //info.mPort = dataArray[3];
            int state   = UtilTools.IntParse(dataArray[6]);
            int service = UtilTools.IntParse(dataArray[5]);

//             if (instance.serverList.ContainsKey(info.Name))
//             {
//                 instance.serverList[info.Name] = info;
//             }
//             else
//             {
//                 instance.serverList.Add(info.Name, info);
//             }
        }

        instance.dataIsReady = true;
        if (instance.onServerListOK != null)
        {
            instance.onServerListOK(true);
        }
    }