How should we set ClientWebSocket options?
kblok opened this issue · 1 comments
kblok commented
I bet CreateClientWebSocket 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?
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.
martonb commented
Alternatively, a helper function in the form of SystemClientWebSocket.SetKeepAliveInterval(WebSocket ws, TimeSpan interval) would be helpful too...