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); }
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(); }