Deserialize() public static method

public static Deserialize ( string serializedObj, test, &obj ) : void
serializedObj string
obj test,
return void
Beispiel #1
0
        void _RPC_NotifyGameStart(IPEndPoint remote, byte[] bytes)
        {
            // Debuger.Log(LOG_TAG, "_RPC_NotifyGameStart()");
            FSPGameStartParam data = PBSerializer.Deserialize <FSPGameStartParam>(bytes);

            PVPStartParam startParam = new PVPStartParam();

            startParam.fspParam  = data.fspParam;
            startParam.gameParam = PBSerializer.Deserialize <GameParam>(data.customGameParam);

            for (int i = 0; i < data.players.Count; i++)
            {
                FSPPlayerData player = data.players[i];
                byte[]        buff   = player.customPlayerData;

                PlayerData pb = PBSerializer.Deserialize <PlayerData>(buff);
                pb.playerID = (int)player.id;
                pb.userID   = (uint)player.userId;
                pb.userName = player.name;
                pb.teamID   = (int)player.id;
                startParam.players.Add(pb);

                Debuger.Log(LOG_TAG, "_RPC_NotifyGameStart: {0}", pb.ToString());
            }

            // EventManager.Instance.SendEvent<PVPStartParam>("OnGameStart", startParam);
        }
Beispiel #2
0
        private void onConnect(long peerId)
        {
            Debug.Assert(!peerToCodec.ContainsKey(peerId));

            var data = new PeerData();

            peerToCodec[peerId] = data;
            Global.RoomPID.Tell(new RoomCmdEnter {
                peerId = peerId
            });

            data.codec.FrameCb = frame =>
            {
                try
                {
                    var msg = PBSerializer.Deserialize(typeDb, frame);
                    Global.RoomPID.Tell(new RoomCmdMsg {
                        msg = msg, peerId = peerId
                    });
                }
                catch (Exception e)
                {
                    this.Fatal(e.ToString());
                }
            };
        }
Beispiel #3
0
 //=====================================================================
 #region 消息接收: ACK, SYN, Broadcast
 void OnReceive(byte[] buffer, int size, IPEndPoint remotePoint)
 {
     try
     {
         var msg = PBSerializer.Deserialize <RPCMessage>(buffer);
         HandleRPCMessage(msg, remotePoint);
     }
     catch (Exception e)
     {
         Debuger.LogError(LOG_TAG, "OnReceive()->HandleMessage->Error:" + e.Message + "\n" + e.StackTrace);
     }
 }
Beispiel #4
0
        void OnReceive(byte[] buffer, int size, IPEndPoint remotePoint)
        {
            FSPData_CS data = PBSerializer.Deserialize<FSPData_CS>(buffer);

            FSPSession session = GetSession(data.sid);
            if (session == null)
            {
                Debuger.LogWarning(LOG_TAG_RECV, "DoReceive() 收到一个未知的SID = " + data.sid);
                return;
            }

            session.EndPoint = remotePoint;
            session.Receive(data);
        }
Beispiel #5
0
        public UDPSession()
        {
            codec  = new FrameCodec();
            typeDb = new PBTypeDB(Assembly.GetExecutingAssembly());
            cli    = new UDPClient();

            cli.OnConnect = peerId =>
            {
                Debug.Assert(this.peerId == 0);

                Connecting  = false;
                Connected   = true;
                this.peerId = peerId;

                OnConnect?.Invoke();
            };

            cli.OnDisconnect = peerId =>
            {
                Debug.Assert(this.peerId == peerId);


                Connecting  = false;
                Connected   = false;
                this.peerId = 0;

                OnDisconnect?.Invoke();
            };
            cli.OnReceive = (peerId, bytes, channelId) =>
            {
                Debug.Assert(this.peerId == peerId);

                codec.Feed(bytes);
            };

            codec.FrameCb = frame =>
            {
                try
                {
                    var msg = PBSerializer.Deserialize(typeDb, frame);
                    OnMsg?.Invoke(msg);
                }
                catch (Exception e)
                {
                    this.Fatal("{0}:{1}", peerId, e.ToString());
                }
            };
        }
Beispiel #6
0
        void OnReceive(byte[] buffer, int size, IPEndPoint remotePoint)
        {
            if (m_RecvListener != null)
            {
                FSPData_SC data = PBSerializer.Deserialize <FSPData_SC>(buffer);

                var frames = data.frames;
                for (int i = 0; i < frames.Count; i++)
                {
                    m_RecvListener(frames[i]);
                }
            }
            else
            {
                Debuger.LogWarning(LOG_TAG, "no receive listener!");
            }
        }
Beispiel #7
0
        void _RPC_UpdateRoomInfo(IPEndPoint remote, byte[] bytes)
        {
            FSPRoomData data = PBSerializer.Deserialize <FSPRoomData>(bytes);

            m_listPlayerInfo = data.players;

            m_isInRoom = false;
            m_isReady  = false;

            for (int i = 0; i < m_listPlayerInfo.Count; ++i)
            {
                if (m_listPlayerInfo[i].userId == m_mainUserId)
                {
                    m_isInRoom = true;
                    m_isReady  = m_listPlayerInfo[i].isReady;
                }
            }

            EventManager.Instance.SendEvent("OnRoomUpdate");
        }
Beispiel #8
0
 static FSPParam CloneParam(FSPParam param)
 {
     byte[] bytes = PBSerializer.Serialize(param);
     return PBSerializer.Deserialize<FSPParam>(bytes);
 }