24
24
using MLAPI . Spawning ;
25
25
using static MLAPI . Messaging . CustomMessagingManager ;
26
26
using MLAPI . Exceptions ;
27
+ using MLAPI . Transports . Tasks ;
27
28
28
29
namespace MLAPI
29
30
{
@@ -319,7 +320,6 @@ private void Init(bool server)
319
320
networkTimeOffset = 0f ;
320
321
currentNetworkTimeOffset = 0f ;
321
322
networkTimeInitialized = false ;
322
- lastSendTickTime = 0f ;
323
323
lastEventTickTime = 0f ;
324
324
lastReceiveTickTime = 0f ;
325
325
eventOvershootCounter = 0f ;
@@ -395,13 +395,13 @@ private void Init(bool server)
395
395
/// <summary>
396
396
/// Starts a server
397
397
/// </summary>
398
- public void StartServer ( )
398
+ public SocketTasks StartServer ( )
399
399
{
400
400
if ( LogHelper . CurrentLogLevel <= LogLevel . Developer ) LogHelper . LogInfo ( "StartServer()" ) ;
401
401
if ( IsServer || IsClient )
402
402
{
403
403
if ( LogHelper . CurrentLogLevel <= LogLevel . Normal ) LogHelper . LogWarning ( "Cannot start server while an instance is already running" ) ;
404
- return ;
404
+ return SocketTask . Fault . AsTasks ( ) ;
405
405
}
406
406
407
407
if ( NetworkConfig . ConnectionApproval )
@@ -413,7 +413,8 @@ public void StartServer()
413
413
}
414
414
415
415
Init ( true ) ;
416
- NetworkConfig . NetworkTransport . StartServer ( ) ;
416
+
417
+ SocketTasks tasks = NetworkConfig . NetworkTransport . StartServer ( ) ;
417
418
418
419
IsServer = true ;
419
420
IsClient = false ;
@@ -423,26 +424,32 @@ public void StartServer()
423
424
424
425
if ( OnServerStarted != null )
425
426
OnServerStarted . Invoke ( ) ;
427
+
428
+ return tasks ;
426
429
}
427
430
428
431
/// <summary>
429
432
/// Starts a client
430
433
/// </summary>
431
- public void StartClient ( )
434
+ public SocketTasks StartClient ( )
432
435
{
433
436
if ( LogHelper . CurrentLogLevel <= LogLevel . Developer ) LogHelper . LogInfo ( "StartClient()" ) ;
437
+
434
438
if ( IsServer || IsClient )
435
439
{
436
440
if ( LogHelper . CurrentLogLevel <= LogLevel . Normal ) LogHelper . LogWarning ( "Cannot start client while an instance is already running" ) ;
437
- return ;
441
+ return SocketTask . Fault . AsTasks ( ) ;
438
442
}
439
443
440
444
Init ( false ) ;
441
- NetworkConfig . NetworkTransport . StartClient ( ) ;
445
+
446
+ SocketTasks tasks = NetworkConfig . NetworkTransport . StartClient ( ) ;
442
447
443
448
IsServer = false ;
444
449
IsClient = true ;
445
450
IsListening = true ;
451
+
452
+ return tasks ;
446
453
}
447
454
448
455
/// <summary>
@@ -510,13 +517,14 @@ public void StopClient()
510
517
/// <summary>
511
518
/// Starts a Host
512
519
/// </summary>
513
- public void StartHost ( Vector3 ? position = null , Quaternion ? rotation = null , bool ? createPlayerObject = null , ulong ? prefabHash = null , Stream payloadStream = null )
520
+ public SocketTasks StartHost ( Vector3 ? position = null , Quaternion ? rotation = null , bool ? createPlayerObject = null , ulong ? prefabHash = null , Stream payloadStream = null )
514
521
{
515
522
if ( LogHelper . CurrentLogLevel <= LogLevel . Developer ) LogHelper . LogInfo ( "StartHost()" ) ;
523
+
516
524
if ( IsServer || IsClient )
517
525
{
518
526
if ( LogHelper . CurrentLogLevel <= LogLevel . Normal ) LogHelper . LogWarning ( "Cannot start host while an instance is already running" ) ;
519
- return ;
527
+ return SocketTask . Fault . AsTasks ( ) ;
520
528
}
521
529
522
530
if ( NetworkConfig . ConnectionApproval )
@@ -528,7 +536,8 @@ public void StartHost(Vector3? position = null, Quaternion? rotation = null, boo
528
536
}
529
537
530
538
Init ( true ) ;
531
- NetworkConfig . NetworkTransport . StartServer ( ) ;
539
+
540
+ SocketTasks tasks = NetworkConfig . NetworkTransport . StartServer ( ) ;
532
541
533
542
IsServer = true ;
534
543
IsClient = true ;
@@ -558,6 +567,8 @@ public void StartHost(Vector3? position = null, Quaternion? rotation = null, boo
558
567
559
568
if ( OnServerStarted != null )
560
569
OnServerStarted . Invoke ( ) ;
570
+
571
+ return tasks ;
561
572
}
562
573
563
574
private void OnEnable ( )
@@ -601,28 +612,13 @@ private void Shutdown()
601
612
}
602
613
603
614
private float lastReceiveTickTime ;
604
- private float lastSendTickTime ;
605
615
private float lastEventTickTime ;
606
616
private float eventOvershootCounter ;
607
617
private float lastTimeSyncTime ;
608
618
private void Update ( )
609
619
{
610
620
if ( IsListening )
611
621
{
612
- if ( ( NetworkTime - lastSendTickTime >= ( 1f / NetworkConfig . SendTickrate ) ) || NetworkConfig . SendTickrate <= 0 )
613
- {
614
- if ( NetworkConfig . EnableNetworkedVar )
615
- {
616
- NetworkedObject . NetworkedBehaviourUpdate ( ) ;
617
- }
618
-
619
- foreach ( KeyValuePair < ulong , NetworkedClient > pair in ConnectedClients )
620
- {
621
- NetworkConfig . NetworkTransport . FlushSendQueue ( pair . Key ) ;
622
- }
623
-
624
- lastSendTickTime = NetworkTime ;
625
- }
626
622
if ( ( NetworkTime - lastReceiveTickTime >= ( 1f / NetworkConfig . ReceiveTickrate ) ) || NetworkConfig . ReceiveTickrate <= 0 )
627
623
{
628
624
NetworkProfiler . StartTick ( TickType . Receive ) ;
@@ -701,7 +697,7 @@ private void Update()
701
697
}
702
698
}
703
699
// Send the hail
704
- InternalMessageSender . Send ( clientId , MLAPIConstants . MLAPI_CERTIFICATE_HAIL , "MLAPI_INTERNAL" , hailStream , SecuritySendFlags . None , null , true ) ;
700
+ InternalMessageSender . Send ( clientId , MLAPIConstants . MLAPI_CERTIFICATE_HAIL , "MLAPI_INTERNAL" , hailStream , SecuritySendFlags . None , null ) ;
705
701
}
706
702
}
707
703
else
@@ -759,6 +755,13 @@ private void Update()
759
755
eventOvershootCounter += ( ( NetworkTime - lastEventTickTime ) - ( 1f / NetworkConfig . EventTickrate ) ) ;
760
756
LagCompensationManager . AddFrames ( ) ;
761
757
ResponseMessageManager . CheckTimeouts ( ) ;
758
+
759
+ if ( NetworkConfig . EnableNetworkedVar )
760
+ {
761
+ // Do NetworkedVar updates
762
+ NetworkedObject . NetworkedBehaviourUpdate ( ) ;
763
+ }
764
+
762
765
lastEventTickTime = NetworkTime ;
763
766
NetworkProfiler . EndTick ( ) ;
764
767
}
@@ -813,7 +816,7 @@ internal void SendConnectionRequest()
813
816
writer . WriteByteArray ( NetworkConfig . ConnectionData ) ;
814
817
}
815
818
816
- InternalMessageSender . Send ( ServerClientId , MLAPIConstants . MLAPI_CONNECTION_REQUEST , "MLAPI_INTERNAL" , stream , SecuritySendFlags . Authenticated | SecuritySendFlags . Encrypted , null , true ) ;
819
+ InternalMessageSender . Send ( ServerClientId , MLAPIConstants . MLAPI_CONNECTION_REQUEST , "MLAPI_INTERNAL" , stream , SecuritySendFlags . Authenticated | SecuritySendFlags . Encrypted , null ) ;
817
820
}
818
821
}
819
822
@@ -1063,7 +1066,7 @@ private void SyncTime()
1063
1066
using ( PooledBitWriter writer = PooledBitWriter . Get ( stream ) )
1064
1067
{
1065
1068
writer . WriteSinglePacked ( Time . realtimeSinceStartup ) ;
1066
- InternalMessageSender . Send ( MLAPIConstants . MLAPI_TIME_SYNC , "MLAPI_TIME_SYNC" , stream , SecuritySendFlags . None , null , true ) ;
1069
+ InternalMessageSender . Send ( MLAPIConstants . MLAPI_TIME_SYNC , "MLAPI_TIME_SYNC" , stream , SecuritySendFlags . None , null ) ;
1067
1070
}
1068
1071
}
1069
1072
}
@@ -1190,7 +1193,7 @@ internal void HandleApproval(ulong clientId, bool createPlayerObject, ulong? pla
1190
1193
}
1191
1194
}
1192
1195
1193
- InternalMessageSender . Send ( clientId , MLAPIConstants . MLAPI_CONNECTION_APPROVED , "MLAPI_INTERNAL" , stream , SecuritySendFlags . Encrypted | SecuritySendFlags . Authenticated , null , true ) ;
1196
+ InternalMessageSender . Send ( clientId , MLAPIConstants . MLAPI_CONNECTION_APPROVED , "MLAPI_INTERNAL" , stream , SecuritySendFlags . Encrypted | SecuritySendFlags . Authenticated , null ) ;
1194
1197
1195
1198
if ( OnClientConnectedCallback != null )
1196
1199
OnClientConnectedCallback . Invoke ( clientId ) ;
0 commit comments