11using Cysharp . Threading . Tasks ;
2+ using Insthync . SimpleNetworkManager . NET . Messages ;
23using Insthync . SimpleNetworkManager . NET . Services ;
34using Microsoft . Extensions . Logging ;
45using System ;
@@ -11,11 +12,11 @@ public abstract class BaseNetworkServer
1112 protected readonly ILoggerFactory _loggerFactory ;
1213 protected readonly ILogger < BaseNetworkServer > _logger ;
1314 protected readonly ConnectionManager _connectionManager ;
14- protected readonly MessageRouter _messageRouter ;
15+ protected readonly MessageRouterService _messageRouter ;
1516 public int MaxConnections = 1 ;
1617
1718 public ConnectionManager ConnectionManager => _connectionManager ;
18- public MessageRouter MessageRouter => _messageRouter ;
19+ public MessageRouterService MessageRouter => _messageRouter ;
1920
2021 /// <summary>
2122 /// Indicates whether the server is currently running
@@ -27,7 +28,26 @@ public BaseNetworkServer(ILoggerFactory loggerFactory)
2728 _loggerFactory = loggerFactory ;
2829 _logger = _loggerFactory . CreateLogger < BaseNetworkServer > ( ) ;
2930 _connectionManager = new ConnectionManager ( _loggerFactory . CreateLogger < ConnectionManager > ( ) ) ;
30- _messageRouter = new MessageRouter ( _loggerFactory . CreateLogger < MessageRouter > ( ) ) ;
31+ _messageRouter = new MessageRouterService ( _loggerFactory . CreateLogger < MessageRouterService > ( ) ) ;
32+ }
33+
34+ public async UniTask SendMessageAsync < T > ( uint connectionId , T message )
35+ where T : BaseMessage
36+ {
37+ if ( ! _connectionManager . TryGetConnection ( connectionId , out var clientConnection ) )
38+ return ;
39+ if ( clientConnection == null || ! clientConnection . IsConnected )
40+ return ;
41+ await clientConnection . SendMessageAsync ( message ) ;
42+ }
43+
44+ public async UniTask DisconnectAsync ( uint connectionId )
45+ {
46+ if ( ! _connectionManager . TryGetConnection ( connectionId , out var clientConnection ) )
47+ return ;
48+ if ( clientConnection == null || ! clientConnection . IsConnected )
49+ return ;
50+ await clientConnection . DisconnectAsync ( ) ;
3151 }
3252
3353 protected virtual void AddConnection ( BaseClientConnection clientConnection )
0 commit comments