Пример #1
0
        private void InitMemoryCache()
        {
            var preallocCount = 1024;
            var array         = new VNetPacketMemSteam[preallocCount];

            for (var i = 0; i < array.Length; i++)
            {
                array[i] = VNetPacketMemSteam.Allocate();
            }
            for (var i = 0; i < array.Length; i++)
            {
                array[i].ReleaseReference();
            }
        }
Пример #2
0
        public void OnReliableReceive(IVNetPeer conn, MemoryStream stream)
        {
            var packet = VNetPacketMemSteam.Allocate();

            packet.CopyFrom(stream.GetBuffer(), 0, (int)stream.Length);
            VNetworkChannel channel;

            if (Connections.TryGetValue(conn.ConnectId, out channel))
            {
                channel.AddToDeserializeQueue(packet);
            }
            channel.FlowRecv(true, packet.Length);
            packet.ReleaseReference();
            if (null != OnReliableReceivedListener)
            {
                OnReliableReceivedListener(conn);
            }
        }
Пример #3
0
        public void OnRealTimeReceive(IVNetPeer peer, MemoryStream stream)
        {
            if (null != OnRealTimeReceiveListener)
            {
                OnRealTimeReceiveListener(peer, stream);
            }
            var channel = GetChannel(peer, stream);
            var length  = (int)stream.Length - 4;

            if (null == channel || length < 0)
            {
                return;
            }
            var packet = VNetPacketMemSteam.Allocate();

            packet.CopyFrom(stream.GetBuffer(), 4, length);
            channel.AddToDeserializeQueue(packet);
            channel.FlowRecv(false, stream.Length);
            packet.ReleaseReference();
        }
Пример #4
0
        public static VNetPacketMemSteam Allocate()
        {
            VNetPacketMemSteam rc = ObjectAllocatorHolder <VNetPacketMemSteam> .Allocate();

            return(rc);
        }