Я использую класс, полученный из Microsoft.ServiceModel.WebSockets
. Необходимо было указать причину закрытия соединения. Но у метода Close()
нет параметров с причинами закрытия. Я придумал этот метод:
public override void OnOpen()
{
var token = WebSocketContext.Headers["token"];
if (string.IsNullOrWhiteSpace(token))
{
WebSocketContext.WebSocket
.CloseAsync(WebSocketCloseStatus.PolicyViolation, $"Socket token={token} is unknown - rejected!", new CancellationToken())
.Wait();
return;
}
}
Но, вопреки ожиданиям, он выкинул исключение «Вы не можете использовать объект WebSocket напрямую». Есть идеи как это сделать?