Exemplo n.º 1
0
        public void WaitReliable(FrameStream frame)
        {
            if (!frame.IsReliable)
            {
                return;
            }

            if (frame.UniqueReliableId == currentReliableId)
            {
                Networker.FireRead(frame, this);
                currentReliableId++;

                FrameStream next = null;
                while (true)
                {
                    if (!reliablePending.TryGetValue(currentReliableId, out next))
                    {
                        break;
                    }

                    reliablePending.Remove(currentReliableId++);
                    Networker.FireRead(next, this);
                }
            }
            else if (frame.UniqueReliableId > currentReliableId)
            {
                reliablePending.Add(frame.UniqueReliableId, frame);
            }
        }