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