1- using System ;
2- using System . Collections . Generic ;
1+ using System . Collections . Generic ;
32using MLAPI . Data ;
43using MLAPI . NetworkingManagerComponents . Binary ;
54using MLAPI . NetworkingManagerComponents . Cryptography ;
@@ -10,6 +9,7 @@ namespace MLAPI.NetworkingManagerComponents.Core
109{
1110 internal static partial class InternalMessageHandler
1211 {
12+ internal static byte [ ] FinalMessageBuffer ;
1313 internal static void PassthroughSend ( uint targetId , uint sourceId , ushort messageType , int channelId , byte [ ] data , uint ? networkId = null , ushort ? orderId = null )
1414 {
1515 NetId targetNetId = new NetId ( targetId ) ;
@@ -41,8 +41,10 @@ internal static void PassthroughSend(uint targetId, uint sourceId, ushort messag
4141 else
4242 writer . WriteByteArray ( data ) ;
4343
44+ writer . Finalize ( ref FinalMessageBuffer ) ;
45+
4446 byte error ;
45- NetworkTransport . QueueMessageForSending ( targetNetId . HostId , targetNetId . ConnectionId , channelId , writer . Finalize ( ) , ( int ) writer . GetFinalizeSize ( ) , out error ) ;
47+ NetworkTransport . QueueMessageForSending ( targetNetId . HostId , targetNetId . ConnectionId , channelId , FinalMessageBuffer , ( int ) writer . GetFinalizeSize ( ) , out error ) ;
4648 }
4749 }
4850
@@ -103,10 +105,13 @@ internal static void Send(uint clientId, string messageType, string channelName,
103105 byte error ;
104106 if ( isPassthrough )
105107 netId = NetId . ServerNetId ;
108+
109+ writer . Finalize ( ref FinalMessageBuffer ) ;
110+
106111 if ( skipQueue )
107- NetworkTransport . Send ( netId . HostId , netId . ConnectionId , MessageManager . channels [ channelName ] , writer . Finalize ( ) , ( int ) writer . GetFinalizeSize ( ) , out error ) ;
112+ NetworkTransport . Send ( netId . HostId , netId . ConnectionId , MessageManager . channels [ channelName ] , FinalMessageBuffer , ( int ) writer . GetFinalizeSize ( ) , out error ) ;
108113 else
109- NetworkTransport . QueueMessageForSending ( netId . HostId , netId . ConnectionId , MessageManager . channels [ channelName ] , writer . Finalize ( ) , ( int ) writer . GetFinalizeSize ( ) , out error ) ;
114+ NetworkTransport . QueueMessageForSending ( netId . HostId , netId . ConnectionId , MessageManager . channels [ channelName ] , FinalMessageBuffer , ( int ) writer . GetFinalizeSize ( ) , out error ) ;
110115 }
111116 }
112117
@@ -149,8 +154,11 @@ internal static void Send(uint[] clientIds, string messageType, string channelNa
149154 //Client trying to send data to host
150155 netId = NetId . ServerNetId ;
151156 }
157+
158+ writer . Finalize ( ref FinalMessageBuffer ) ;
159+
152160 byte error ;
153- NetworkTransport . QueueMessageForSending ( netId . HostId , netId . ConnectionId , channel , writer . Finalize ( ) , ( int ) writer . GetFinalizeSize ( ) , out error ) ;
161+ NetworkTransport . QueueMessageForSending ( netId . HostId , netId . ConnectionId , channel , FinalMessageBuffer , ( int ) writer . GetFinalizeSize ( ) , out error ) ;
154162 }
155163 }
156164 }
@@ -194,8 +202,11 @@ internal static void Send(List<uint> clientIds, string messageType, string chann
194202 //Client trying to send data to host
195203 netId = NetId . ServerNetId ;
196204 }
205+
206+ writer . Finalize ( ref FinalMessageBuffer ) ;
207+
197208 byte error ;
198- NetworkTransport . QueueMessageForSending ( netId . HostId , netId . ConnectionId , channel , writer . Finalize ( ) , ( int ) writer . GetFinalizeSize ( ) , out error ) ;
209+ NetworkTransport . QueueMessageForSending ( netId . HostId , netId . ConnectionId , channel , FinalMessageBuffer , ( int ) writer . GetFinalizeSize ( ) , out error ) ;
199210 }
200211 }
201212 }
@@ -240,8 +251,11 @@ internal static void Send(string messageType, string channelName, byte[] data, u
240251 //Client trying to send data to host
241252 netId = NetId . ServerNetId ;
242253 }
254+
255+ writer . Finalize ( ref FinalMessageBuffer ) ;
256+
243257 byte error ;
244- NetworkTransport . QueueMessageForSending ( netId . HostId , netId . ConnectionId , channel , writer . Finalize ( ) , ( int ) writer . GetFinalizeSize ( ) , out error ) ;
258+ NetworkTransport . QueueMessageForSending ( netId . HostId , netId . ConnectionId , channel , FinalMessageBuffer , ( int ) writer . GetFinalizeSize ( ) , out error ) ;
245259 }
246260 }
247261 }
@@ -288,8 +302,11 @@ internal static void Send(string messageType, string channelName, byte[] data, u
288302 //Client trying to send data to host
289303 netId = NetId . ServerNetId ;
290304 }
305+
306+ writer . Finalize ( ref FinalMessageBuffer ) ;
307+
291308 byte error ;
292- NetworkTransport . QueueMessageForSending ( netId . HostId , netId . ConnectionId , channel , writer . Finalize ( ) , ( int ) writer . GetFinalizeSize ( ) , out error ) ;
309+ NetworkTransport . QueueMessageForSending ( netId . HostId , netId . ConnectionId , channel , FinalMessageBuffer , ( int ) writer . GetFinalizeSize ( ) , out error ) ;
293310 }
294311 }
295312 }
0 commit comments