@@ -301,76 +301,80 @@ private void Update()
301
301
{
302
302
if ( isListening )
303
303
{
304
- if ( Time . time - lastSendTickTime >= ( 1f / NetworkConfig . SendTickrate ) )
304
+ if ( ( Time . time - lastSendTickTime >= ( 1f / NetworkConfig . SendTickrate ) ) || NetworkConfig . SendTickrate <= 0 )
305
305
{
306
306
foreach ( KeyValuePair < int , NetworkedClient > pair in connectedClients )
307
307
{
308
308
NetworkTransport . SendQueuedMessages ( hostId , pair . Key , out error ) ;
309
309
}
310
310
lastSendTickTime = Time . time ;
311
311
}
312
- if ( Time . time - lastReceiveTickTime >= ( 1f / NetworkConfig . ReceiveTickrate ) )
312
+ if ( ( Time . time - lastReceiveTickTime >= ( 1f / NetworkConfig . ReceiveTickrate ) ) || NetworkConfig . ReceiveTickrate <= 0 )
313
313
{
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
317
316
{
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 )
320
320
{
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.
334
322
if ( isServer )
335
323
{
336
- pendingClients . Add ( clientId ) ;
337
- StartCoroutine ( ApprovalTimeout ( clientId ) ) ;
324
+ OnClientDisconnect ( clientId ) ;
325
+ return ;
338
326
}
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
+ }
344
333
345
- using ( MemoryStream writeStream = new MemoryStream ( sizeOfStream ) )
334
+ switch ( eventType )
335
+ {
336
+ case NetworkEventType . ConnectEvent :
337
+ if ( isServer )
346
338
{
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 ) )
348
349
{
349
- writer . Write ( NetworkConfig . GetConfig ( ) ) ;
350
- if ( NetworkConfig . ConnectionApproval )
350
+ using ( BinaryWriter writer = new BinaryWriter ( writeStream ) )
351
351
{
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
+ }
354
358
}
359
+ Send ( clientId , "MLAPI_CONNECTION_REQUEST" , "MLAPI_RELIABLE_FRAGMENTED_SEQUENCED" , writeStream . GetBuffer ( ) ) ;
355
360
}
356
- Send ( clientId , "MLAPI_CONNECTION_REQUEST" , "MLAPI_RELIABLE_FRAGMENTED_SEQUENCED" , writeStream . GetBuffer ( ) ) ;
357
361
}
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 ) ;
368
372
lastReceiveTickTime = Time . time ;
369
373
}
370
- if ( isServer && ( Time . time - lastEventTickTime >= ( 1f / NetworkConfig . EventTickrate ) ) )
374
+ if ( isServer && ( ( Time . time - lastEventTickTime >= ( 1f / NetworkConfig . EventTickrate ) ) || NetworkConfig . EventTickrate <= 0 ) )
371
375
{
372
376
LagCompensationManager . AddFrames ( ) ;
373
- NetworkedObject . InvokeSyncvafrUpdate ( ) ;
377
+ NetworkedObject . InvokeSyncvarUpdate ( ) ;
374
378
lastEventTickTime = Time . time ;
375
379
}
376
380
}
0 commit comments