コード例 #1
0
ファイル: LoginServer.cs プロジェクト: Roy0131/IlrtUnity
    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);
    }
コード例 #2
0
ファイル: GameServer.cs プロジェクト: Roy0131/IlrtUnity
    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();
    }