Optimized sending memory allocations
This commit is contained in:
parent
13b0edca5d
commit
eb4df1ab61
@ -513,7 +513,13 @@ namespace MLAPI
|
|||||||
//Client trying to send data to host
|
//Client trying to send data to host
|
||||||
clientId = serverClientId;
|
clientId = serverClientId;
|
||||||
}
|
}
|
||||||
using (MemoryStream stream = new MemoryStream())
|
//2 bytes for messageType, 2 bytes for buffer length and one byte for target bool
|
||||||
|
int sizeOfStream = 5;
|
||||||
|
if (networkId != null)
|
||||||
|
sizeOfStream += 4;
|
||||||
|
sizeOfStream += data.Length;
|
||||||
|
|
||||||
|
using (MemoryStream stream = new MemoryStream(sizeOfStream))
|
||||||
{
|
{
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
@ -524,14 +530,19 @@ namespace MLAPI
|
|||||||
writer.Write((ushort)data.Length);
|
writer.Write((ushort)data.Length);
|
||||||
writer.Write(data);
|
writer.Write(data);
|
||||||
}
|
}
|
||||||
byte[] dataToSend = stream.ToArray();
|
NetworkTransport.Send(hostId, clientId, MessageManager.channels[channelName], stream.GetBuffer(), sizeOfStream, out error);
|
||||||
NetworkTransport.Send(hostId, clientId, MessageManager.channels[channelName], dataToSend, dataToSend.Length, out error);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void Send(int[] clientIds, string messageType, string channelName, byte[] data, uint? networkId = null)
|
internal void Send(int[] clientIds, string messageType, string channelName, byte[] data, uint? networkId = null)
|
||||||
{
|
{
|
||||||
using (MemoryStream stream = new MemoryStream())
|
//2 bytes for messageType, 2 bytes for buffer length and one byte for target bool
|
||||||
|
int sizeOfStream = 5;
|
||||||
|
if (networkId != null)
|
||||||
|
sizeOfStream += 4;
|
||||||
|
sizeOfStream += data.Length;
|
||||||
|
|
||||||
|
using (MemoryStream stream = new MemoryStream(sizeOfStream))
|
||||||
{
|
{
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
@ -542,7 +553,6 @@ namespace MLAPI
|
|||||||
writer.Write((ushort)data.Length);
|
writer.Write((ushort)data.Length);
|
||||||
writer.Write(data);
|
writer.Write(data);
|
||||||
}
|
}
|
||||||
byte[] dataToSend = stream.ToArray();
|
|
||||||
int channel = MessageManager.channels[channelName];
|
int channel = MessageManager.channels[channelName];
|
||||||
for (int i = 0; i < clientIds.Length; i++)
|
for (int i = 0; i < clientIds.Length; i++)
|
||||||
{
|
{
|
||||||
@ -560,14 +570,20 @@ namespace MLAPI
|
|||||||
//Client trying to send data to host
|
//Client trying to send data to host
|
||||||
clientId = serverClientId;
|
clientId = serverClientId;
|
||||||
}
|
}
|
||||||
NetworkTransport.Send(hostId, clientId, channel, dataToSend, dataToSend.Length, out error);
|
NetworkTransport.Send(hostId, clientId, channel, stream.GetBuffer(), sizeOfStream, out error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void Send(List<int> clientIds, string messageType, string channelName, byte[] data, uint? networkId = null)
|
internal void Send(List<int> clientIds, string messageType, string channelName, byte[] data, uint? networkId = null)
|
||||||
{
|
{
|
||||||
using (MemoryStream stream = new MemoryStream())
|
//2 bytes for messageType, 2 bytes for buffer length and one byte for target bool
|
||||||
|
int sizeOfStream = 5;
|
||||||
|
if (networkId != null)
|
||||||
|
sizeOfStream += 4;
|
||||||
|
sizeOfStream += data.Length;
|
||||||
|
|
||||||
|
using (MemoryStream stream = new MemoryStream(sizeOfStream))
|
||||||
{
|
{
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
@ -578,7 +594,6 @@ namespace MLAPI
|
|||||||
writer.Write((ushort)data.Length);
|
writer.Write((ushort)data.Length);
|
||||||
writer.Write(data);
|
writer.Write(data);
|
||||||
}
|
}
|
||||||
byte[] dataToSend = stream.ToArray();
|
|
||||||
int channel = MessageManager.channels[channelName];
|
int channel = MessageManager.channels[channelName];
|
||||||
for (int i = 0; i < clientIds.Count; i++)
|
for (int i = 0; i < clientIds.Count; i++)
|
||||||
{
|
{
|
||||||
@ -596,14 +611,20 @@ namespace MLAPI
|
|||||||
//Client trying to send data to host
|
//Client trying to send data to host
|
||||||
clientId = serverClientId;
|
clientId = serverClientId;
|
||||||
}
|
}
|
||||||
NetworkTransport.Send(hostId, clientId, channel, dataToSend, dataToSend.Length, out error);
|
NetworkTransport.Send(hostId, clientId, channel, stream.GetBuffer(), sizeOfStream, out error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void Send(string messageType, string channelName, byte[] data, uint? networkId = null)
|
internal void Send(string messageType, string channelName, byte[] data, uint? networkId = null)
|
||||||
{
|
{
|
||||||
using (MemoryStream stream = new MemoryStream())
|
//2 bytes for messageType, 2 bytes for buffer length and one byte for target bool
|
||||||
|
int sizeOfStream = 5;
|
||||||
|
if (networkId != null)
|
||||||
|
sizeOfStream += 4;
|
||||||
|
sizeOfStream += data.Length;
|
||||||
|
|
||||||
|
using (MemoryStream stream = new MemoryStream(sizeOfStream))
|
||||||
{
|
{
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
@ -614,7 +635,6 @@ namespace MLAPI
|
|||||||
writer.Write((ushort)data.Length);
|
writer.Write((ushort)data.Length);
|
||||||
writer.Write(data);
|
writer.Write(data);
|
||||||
}
|
}
|
||||||
byte[] dataToSend = stream.ToArray();
|
|
||||||
int channel = MessageManager.channels[channelName];
|
int channel = MessageManager.channels[channelName];
|
||||||
foreach (KeyValuePair<int, NetworkedClient> pair in connectedClients)
|
foreach (KeyValuePair<int, NetworkedClient> pair in connectedClients)
|
||||||
{
|
{
|
||||||
@ -632,7 +652,7 @@ namespace MLAPI
|
|||||||
//Client trying to send data to host
|
//Client trying to send data to host
|
||||||
clientId = serverClientId;
|
clientId = serverClientId;
|
||||||
}
|
}
|
||||||
NetworkTransport.Send(hostId, clientId, channel, dataToSend, dataToSend.Length, out error);
|
NetworkTransport.Send(hostId, clientId, channel, stream.GetBuffer(), sizeOfStream, out error);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -640,7 +660,13 @@ namespace MLAPI
|
|||||||
|
|
||||||
internal void Send(string messageType, string channelName, byte[] data, int clientIdToIgnore, uint? networkId = null)
|
internal void Send(string messageType, string channelName, byte[] data, int clientIdToIgnore, uint? networkId = null)
|
||||||
{
|
{
|
||||||
using (MemoryStream stream = new MemoryStream())
|
//2 bytes for messageType, 2 bytes for buffer length and one byte for target bool
|
||||||
|
int sizeOfStream = 5;
|
||||||
|
if (networkId != null)
|
||||||
|
sizeOfStream += 4;
|
||||||
|
sizeOfStream += data.Length;
|
||||||
|
|
||||||
|
using (MemoryStream stream = new MemoryStream(sizeOfStream))
|
||||||
{
|
{
|
||||||
using (BinaryWriter writer = new BinaryWriter(stream))
|
using (BinaryWriter writer = new BinaryWriter(stream))
|
||||||
{
|
{
|
||||||
@ -651,7 +677,6 @@ namespace MLAPI
|
|||||||
writer.Write((ushort)data.Length);
|
writer.Write((ushort)data.Length);
|
||||||
writer.Write(data);
|
writer.Write(data);
|
||||||
}
|
}
|
||||||
byte[] dataToSend = stream.ToArray();
|
|
||||||
int channel = MessageManager.channels[channelName];
|
int channel = MessageManager.channels[channelName];
|
||||||
foreach (KeyValuePair<int, NetworkedClient> pair in connectedClients)
|
foreach (KeyValuePair<int, NetworkedClient> pair in connectedClients)
|
||||||
{
|
{
|
||||||
@ -671,7 +696,7 @@ namespace MLAPI
|
|||||||
//Client trying to send data to host
|
//Client trying to send data to host
|
||||||
clientId = serverClientId;
|
clientId = serverClientId;
|
||||||
}
|
}
|
||||||
NetworkTransport.Send(hostId, clientId, channel, dataToSend, dataToSend.Length, out error);
|
NetworkTransport.Send(hostId, clientId, channel, stream.GetBuffer(), sizeOfStream, out error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user