Esempio n. 1
0
    private static void CacheNiceStrings()
    {
        IEnumerator enumerator = Enum.GetValues(typeof(NetError)).GetEnumerator();

        try
        {
            while (enumerator.MoveNext())
            {
                object   current  = enumerator.Current;
                NetError netError = (NetError)((int)current);
                string   str      = NetErrorHelper.BuildNiceString(netError);
                if (str == null && netError != NetError.NoError)
                {
                    Debug.LogWarning(string.Concat("NetError.", current, " has no nice string"));
                    str = NetErrorHelper.FallbackNiceString(netError);
                }
                NetErrorHelper.niceStrings[netError] = str;
            }
        }
        finally
        {
            IDisposable disposable = enumerator as IDisposable;
            if (disposable == null)
            {
            }
            disposable.Dispose();
        }
    }
Esempio n. 2
0
    private void OnSelectServerBack(JsonData jsonData)
    {
        if (jsonData == null)
        {
            Logger.LogError("[LoginServer.OnSelectServerBack() => select server failed~~]");
            return;
        }

        Action RunOnMainThread = () =>
        {
            int code = int.Parse(jsonData["Code"].ToString());
            if (code != 0)
            {
                Logger.LogWarning("[LoginServer.OnSelectServerBack() => select server failed, error code:" + code + "]");
                NetErrorHelper.DoErrorCode(code);
                return;
            }
            if (code == 0)
            {
                byte[] bd = Convert.FromBase64String(jsonData["MsgData"].ToString());
                Logger.Log("login in success");
                S2CSelectServerResponse pbData = S2CSelectServerResponse.Parser.ParseFrom(bd);
                GameNetMgr.Instance.mGameServer.ReqLoginGameServer(pbData.Acc, pbData.Token);
            }
            else
            {
                Logger.LogWarning("[GameNetMgr.DoSelectServer() => game logic failed!!!]");
            }
        };

        LoomHelper.QueueOnMainThread(RunOnMainThread);
    }
Esempio n. 3
0
    static NetErrorHelper()
    {
        NetErrorHelper.niceStrings = new Dictionary <NetError, string>(Enum.GetValues(typeof(NetError)).Length);
        NetErrorHelper.CacheNiceStrings();
        uLink.NetworkConnectionError networkConnectionError = uLink.NetworkConnectionError.NoError;
        IEnumerator enumerator = Enum.GetValues(typeof(uLink.NetworkConnectionError)).GetEnumerator();

        try
        {
            while (enumerator.MoveNext())
            {
                object current = enumerator.Current;
                if ((int)current >= (int)networkConnectionError)
                {
                    continue;
                }
                networkConnectionError = (uLink.NetworkConnectionError)((int)current);
            }
        }
        finally
        {
            IDisposable disposable = enumerator as IDisposable;
            if (disposable == null)
            {
            }
            disposable.Dispose();
        }
        if (networkConnectionError != uLink.NetworkConnectionError.InternalDirectConnectFailed)
        {
            Debug.LogWarning(string.Concat(new object[] { "Most Negative Base ", networkConnectionError, " (", (int)networkConnectionError, ")" }));
        }
    }
Esempio n. 4
0
    public static string NiceString(this NetError value)
    {
        string str;

        if (NetErrorHelper.niceStrings.TryGetValue(value, out str))
        {
            return(str);
        }
        return(NetErrorHelper.FallbackNiceString(value));
    }
Esempio n. 5
0
    private void OnReceiveData(S2C_MSG_DATA value)
    {
        if (value.ErrorCode < 0)
        {
            Action RunOnMainThread = () =>
            {
                NetErrorHelper.DoErrorCode(value.ErrorCode);
            };

            Loom.QueueOnMainThread(RunOnMainThread);
            _recvStream.Clear();
            return;
        }

        byte[] bytes = value.Data.ToByteArray();
        _recvStream.AddBytes(bytes);
        while (_recvStream.BytesAvailable >= 4)
        {
            int    msgId   = _recvStream.ReadInt(); //消息id
            int    msgLen  = _recvStream.ReadInt(); //消息长度
            byte[] msgData = _recvStream.ReadBytes(msgLen);
            if (_dictNetHandle.ContainsKey(msgId))
            {
                NetMsgEventHandle handle = _dictNetHandle[msgId];
                NetMsgRecvData    data   = NetPacketHelper.Read(msgId, msgData, handle);
                if (data != null)
                {
                    _lstRecvDatas.Add(data);
                }
            }
            else
            {
                Logger.LogWarning("[GameServer.OnReceiveData() => 消息号:" + msgId + "未注册]");
            }
        }
        _recvStream.Clear();
    }