diff --git a/CoreRemoting.Channels.Quic/QuicClientChannel.cs b/CoreRemoting.Channels.Quic/QuicClientChannel.cs index ebaaeaf..e293f86 100644 --- a/CoreRemoting.Channels.Quic/QuicClientChannel.cs +++ b/CoreRemoting.Channels.Quic/QuicClientChannel.cs @@ -111,12 +111,17 @@ public async Task ConnectAsync() handshakeMessage = Client.PublicKey; } + // start listening for incoming messages + IsConnected = true; + StartListening(); + // send handshake message await SendMessageAsync(handshakeMessage); - IsConnected = true; Connected?.Invoke(); + } - // start listening for incoming messages + public virtual void StartListening() + { _ = Task.Run(() => ReadIncomingMessages()); } diff --git a/CoreRemoting/Channels/Websocket/WebsocketClientChannel.cs b/CoreRemoting/Channels/Websocket/WebsocketClientChannel.cs index bf75e7d..1631bfd 100644 --- a/CoreRemoting/Channels/Websocket/WebsocketClientChannel.cs +++ b/CoreRemoting/Channels/Websocket/WebsocketClientChannel.cs @@ -69,13 +69,13 @@ await ClientWebSocket.ConnectAsync( .ConfigureAwait(false); IsConnected = true; - OnConnected(); + StartListening(); - await WebSocket.SendAsync(EmptyMessage, + await WebSocket.SendAsync(EmptyMessage, WebSocketMessageType.Binary, true, CancellationToken.None) .ConfigureAwait(false); - StartListening(); + OnConnected(); } ///