1- using SocketIOClient . Messages ;
1+ using SocketIOClient . JsonSerializer ;
2+ using SocketIOClient . Messages ;
23using SocketIOClient . Transport ;
34using SocketIOClient . UriConverters ;
45using System ;
@@ -12,20 +13,25 @@ namespace SocketIOClient.Routers
1213{
1314 public abstract class Router : IDisposable
1415 {
15- public Router ( HttpClient httpClient , Func < IClientWebSocket > clientWebSocketProvider , SocketIOOptions options )
16+ public Router (
17+ HttpClient httpClient ,
18+ Func < IClientWebSocket > clientWebSocketProvider ,
19+ SocketIOOptions options ,
20+ IJsonSerializer jsonSerializer )
1621 {
1722 HttpClient = httpClient ;
1823 ClientWebSocketProvider = clientWebSocketProvider ;
1924 UriConverter = new UriConverter ( ) ;
2025 _messageQueue = new Queue < IMessage > ( ) ;
2126 Options = options ;
27+ JsonSerializer = jsonSerializer ;
2228 }
2329
2430 protected HttpClient HttpClient { get ; }
2531 readonly Queue < IMessage > _messageQueue ;
2632 protected Func < IClientWebSocket > ClientWebSocketProvider { get ; }
2733 protected SocketIOOptions Options { get ; }
28-
34+ protected IJsonSerializer JsonSerializer { get ; }
2935 protected OpenedMessage OpenedMessage { get ; set ; }
3036
3137 CancellationTokenSource _pingTokenSource ;
@@ -51,14 +57,20 @@ public virtual Task ConnectAsync()
5157 return Task . CompletedTask ;
5258 }
5359
60+ public string GetAuthJson ( )
61+ {
62+ return JsonSerializer . Serialize ( new [ ] { Options . Auth } ) . Json . TrimStart ( '[' ) . TrimEnd ( ']' ) ;
63+ }
64+
5465 protected virtual async Task OpenAsync ( OpenedMessage msg )
5566 {
5667 OpenedMessage = msg ;
5768 var connectMsg = new ConnectedMessage
5869 {
5970 Namespace = Namespace ,
6071 Eio = EIO ,
61- Query = Options . Query
72+ Query = Options . Query ,
73+ AuthJsonStr = GetAuthJson ( )
6274 } ;
6375
6476 for ( int i = 1 ; i <= 3 ; i ++ )
0 commit comments