UnityEngine.Networking.NetworkConnection.HandleReader C# (CSharp) Method

HandleReader() protected method

This makes the connection process the data contained in the stream, and call handler functions.

protected HandleReader ( NetworkReader reader, int receivedSize, int channelId ) : void
reader NetworkReader Stream that contains data.
receivedSize int Size of the data.
channelId int Channel the data was received on.
return void
        protected void HandleReader(NetworkReader reader, int receivedSize, int channelId)
        {
            while (reader.Position < receivedSize)
            {
                ushort count = reader.ReadUInt16();
                short key = reader.ReadInt16();
                byte[] buffer = reader.ReadBytes(count);
                NetworkReader reader2 = new NetworkReader(buffer);
                if (this.logNetworkMessages)
                {
                    StringBuilder builder = new StringBuilder();
                    for (int i = 0; i < count; i++)
                    {
                        builder.AppendFormat("{0:X2}", buffer[i]);
                        if (i > 150)
                        {
                            break;
                        }
                    }
                    Debug.Log(string.Concat(new object[] { "ConnectionRecv con:", this.connectionId, " bytes:", count, " msgId:", key, " ", builder }));
                }
                NetworkMessageDelegate delegate2 = null;
                if (this.m_MessageHandlersDict.ContainsKey(key))
                {
                    delegate2 = this.m_MessageHandlersDict[key];
                }
                if (delegate2 != null)
                {
                    this.m_NetMsg.msgType = key;
                    this.m_NetMsg.reader = reader2;
                    this.m_NetMsg.conn = this;
                    this.m_NetMsg.channelId = channelId;
                    delegate2(this.m_NetMsg);
                    this.lastMessageTime = Time.time;
                    NetworkDetailStats.IncrementStat(NetworkDetailStats.NetworkDirection.Incoming, 0x1c, "msg", 1);
                    if (key > 0x2f)
                    {
                        NetworkDetailStats.IncrementStat(NetworkDetailStats.NetworkDirection.Incoming, 0, key.ToString() + ":" + key.GetType().Name, 1);
                    }
                    if (this.m_PacketStats.ContainsKey(key))
                    {
                        PacketStat stat = this.m_PacketStats[key];
                        stat.count++;
                        stat.bytes += count;
                    }
                    else
                    {
                        PacketStat stat2 = new PacketStat {
                            msgType = key
                        };
                        stat2.count++;
                        stat2.bytes += count;
                        this.m_PacketStats[key] = stat2;
                    }
                }
                else
                {
                    if (LogFilter.logError)
                    {
                        Debug.LogError(string.Concat(new object[] { "Unknown message ID ", key, " connId:", this.connectionId }));
                    }
                    break;
                }
            }
        }