Я пытаюсь реализовать веб-сокеты в моем приложении, которое в настоящее время реализует веб-API RESTful. Я хочу, чтобы некоторые части информации могли быть открыты через соединение с веб-сокетом, поэтому я пытаюсь выяснить, как обновить обычный HTTP-запрос к подключению веб-сокета.
Я пытаюсь выполнить этот учебник
Проблема, с которой я столкнулась, - это мой контроллер, который обрабатывает запрос Get наследует от ApiController, и я пытаюсь это сделать:
if (HttpContext.Current.IsWebSocketRequest)
{
HttpContext.Current.AcceptWebSocketRequest(SomeFunction);
}
return new HttpResponseMessage(HttpStatusCode.SwitchingProtocols);
Проблема заключается в моем HttpContext.Current всегда null, и я не знаю почему. Кажется, что нет такой вещи, как HttpContext. Я вижу, однако, из запроса, который приходит, что это HttpRequestContext, который приходит с запросом. Связаны ли эти два объекта и есть ли способ получить доступ к методу .IsWebSocketRequest, чтобы я мог попробовать и обновить запрос к подключению веб-сокета?
Мой контроллер и то, что я пытаюсь сделать:
[HttpGet]
public HttpResponseMessage GetSomething()
{
if (HttpContext.Current.IsWebSocketRequest()){
Console.WriteLine("web socket request..");
}
}
^ HttpContext.Current всегда имеет значение null. Мой контроллер наследует исключительно от ApiController