I bet [CreateClientWebSocket](https://github.com/PingmanTools/System.Net.WebSockets.Client.Managed/blob/master/System.Net.WebSockets.Client.Managed/SystemClientWebSocket.cs#L37) returns a `WebSocket` because both `Managed.ClientWebSocket` and `ClientWebSocket` inherits from `WebSocket`. The problem is that it hides the `Options` property. If I want to set the `KeepAliveInterval` should I do something like this? ```cs var client = SystemClientWebSocket.CreateClientWebSocket(); if (client is System.Net.WebSockets.Managed.ClientWebSocket managed) { managed.Options.KeepAliveInterval = TimeSpan.FromSeconds(0); await managed.ConnectAsync(uri, cancellationToken); } else { var coreSocket = client as ClientWebSocket; coreSocket.Options.KeepAliveInterval = TimeSpan.FromSeconds(0); await coreSocket.ConnectAsync(uri, cancellationToken); } ``` If think one option would be passing the `Options` as an argument to the `ConnectAsync` method.
Activity
martonb commentedon Apr 1, 2022
Alternatively, a helper function in the form of SystemClientWebSocket.SetKeepAliveInterval(WebSocket ws, TimeSpan interval) would be helpful too...