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(); } }
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); } }
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(); }
public static VNetPacketMemSteam Allocate() { VNetPacketMemSteam rc = ObjectAllocatorHolder <VNetPacketMemSteam> .Allocate(); return(rc); }