public override Task CloseAsync(WebSocketCloseStatus closeStatus, string statusDescription, CancellationToken cancellationToken)
{
WebSocketValidate.ValidateCloseStatus(closeStatus, statusDescription);
try
{
ClientWebSocket.ThrowIfInvalidState(_state, _disposed, s_validCloseStates);
}
catch (Exception exc)
{
return Task.FromException(exc);
}
return CloseAsyncPrivate(closeStatus, statusDescription, cancellationToken);
}