Skip to content

Commit 6cb02f3

Browse files
committed
Modified tickrate behaviour to empty buffers
1 parent ad41b78 commit 6cb02f3

File tree

1 file changed

+50
-46
lines changed

1 file changed

+50
-46
lines changed

MLAPI/MonoBehaviours/Core/NetworkingManager.cs

Lines changed: 50 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -301,76 +301,80 @@ private void Update()
301301
{
302302
if(isListening)
303303
{
304-
if(Time.time - lastSendTickTime >= (1f / NetworkConfig.SendTickrate))
304+
if((Time.time - lastSendTickTime >= (1f / NetworkConfig.SendTickrate)) || NetworkConfig.SendTickrate <= 0)
305305
{
306306
foreach (KeyValuePair<int, NetworkedClient> pair in connectedClients)
307307
{
308308
NetworkTransport.SendQueuedMessages(hostId, pair.Key, out error);
309309
}
310310
lastSendTickTime = Time.time;
311311
}
312-
if(Time.time - lastReceiveTickTime >= (1f / NetworkConfig.ReceiveTickrate))
312+
if((Time.time - lastReceiveTickTime >= (1f / NetworkConfig.ReceiveTickrate)) || NetworkConfig.ReceiveTickrate <= 0)
313313
{
314-
NetworkEventType eventType = NetworkTransport.Receive(out hostId, out clientId, out channelId, messageBuffer, messageBuffer.Length, out receivedSize, out error);
315-
NetworkError networkError = (NetworkError)error;
316-
if (networkError == NetworkError.Timeout)
314+
NetworkEventType eventType;
315+
do
317316
{
318-
//Client timed out.
319-
if (isServer)
317+
eventType = NetworkTransport.Receive(out hostId, out clientId, out channelId, messageBuffer, messageBuffer.Length, out receivedSize, out error);
318+
NetworkError networkError = (NetworkError)error;
319+
if (networkError == NetworkError.Timeout)
320320
{
321-
OnClientDisconnect(clientId);
322-
return;
323-
}
324-
}
325-
else if (networkError != NetworkError.Ok)
326-
{
327-
Debug.LogWarning("MLAPI: NetworkTransport receive error: " + networkError.ToString());
328-
return;
329-
}
330-
331-
switch (eventType)
332-
{
333-
case NetworkEventType.ConnectEvent:
321+
//Client timed out.
334322
if (isServer)
335323
{
336-
pendingClients.Add(clientId);
337-
StartCoroutine(ApprovalTimeout(clientId));
324+
OnClientDisconnect(clientId);
325+
return;
338326
}
339-
else
340-
{
341-
int sizeOfStream = 32;
342-
if (NetworkConfig.ConnectionApproval)
343-
sizeOfStream += 2 + NetworkConfig.ConnectionData.Length;
327+
}
328+
else if (networkError != NetworkError.Ok)
329+
{
330+
Debug.LogWarning("MLAPI: NetworkTransport receive error: " + networkError.ToString());
331+
return;
332+
}
344333

345-
using (MemoryStream writeStream = new MemoryStream(sizeOfStream))
334+
switch (eventType)
335+
{
336+
case NetworkEventType.ConnectEvent:
337+
if (isServer)
346338
{
347-
using (BinaryWriter writer = new BinaryWriter(writeStream))
339+
pendingClients.Add(clientId);
340+
StartCoroutine(ApprovalTimeout(clientId));
341+
}
342+
else
343+
{
344+
int sizeOfStream = 32;
345+
if (NetworkConfig.ConnectionApproval)
346+
sizeOfStream += 2 + NetworkConfig.ConnectionData.Length;
347+
348+
using (MemoryStream writeStream = new MemoryStream(sizeOfStream))
348349
{
349-
writer.Write(NetworkConfig.GetConfig());
350-
if (NetworkConfig.ConnectionApproval)
350+
using (BinaryWriter writer = new BinaryWriter(writeStream))
351351
{
352-
writer.Write((ushort)NetworkConfig.ConnectionData.Length);
353-
writer.Write(NetworkConfig.ConnectionData);
352+
writer.Write(NetworkConfig.GetConfig());
353+
if (NetworkConfig.ConnectionApproval)
354+
{
355+
writer.Write((ushort)NetworkConfig.ConnectionData.Length);
356+
writer.Write(NetworkConfig.ConnectionData);
357+
}
354358
}
359+
Send(clientId, "MLAPI_CONNECTION_REQUEST", "MLAPI_RELIABLE_FRAGMENTED_SEQUENCED", writeStream.GetBuffer());
355360
}
356-
Send(clientId, "MLAPI_CONNECTION_REQUEST", "MLAPI_RELIABLE_FRAGMENTED_SEQUENCED", writeStream.GetBuffer());
357361
}
358-
}
359-
break;
360-
case NetworkEventType.DataEvent:
361-
HandleIncomingData(clientId, messageBuffer, channelId);
362-
break;
363-
case NetworkEventType.DisconnectEvent:
364-
if (isServer)
365-
OnClientDisconnect(clientId);
366-
break;
367-
}
362+
break;
363+
case NetworkEventType.DataEvent:
364+
HandleIncomingData(clientId, messageBuffer, channelId);
365+
break;
366+
case NetworkEventType.DisconnectEvent:
367+
if (isServer)
368+
OnClientDisconnect(clientId);
369+
break;
370+
}
371+
} while (eventType != NetworkEventType.Nothing);
368372
lastReceiveTickTime = Time.time;
369373
}
370-
if (isServer && (Time.time - lastEventTickTime >= (1f / NetworkConfig.EventTickrate)))
374+
if (isServer && ((Time.time - lastEventTickTime >= (1f / NetworkConfig.EventTickrate)) || NetworkConfig.EventTickrate <= 0))
371375
{
372376
LagCompensationManager.AddFrames();
373-
NetworkedObject.InvokeSyncvafrUpdate();
377+
NetworkedObject.InvokeSyncvarUpdate();
374378
lastEventTickTime = Time.time;
375379
}
376380
}

0 commit comments

Comments
 (0)