Каков предпочтительный метод использования сырых веб-макетов в приложении ASP.NET Web API?
Мы хотели бы использовать двоичные WebSockets на нескольких наших интерфейсах нашего приложения ASP.NET Web API. Мне сложно определить, как это должно быть сделано, поскольку в .NET для .NET существует несколько противоречивых и/или устаревших реализаций.
Есть примеры, которые выглядят как ASP.NET, такие как один, но я думаю, что должно быть средство для использования веб-сокетов в рамках веб-API. Как я знаю, вы можете использовать Signalr в WebAPI.
Я думал, что использование Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler будет работать, но я не уверен, как связать WebSocketHandler с контроллером...
class MyServiceController : ApiController
{
[HttpGet]
public HttpResponseMessage SwitchProtocols (string param)
{
HttpContext currentContext = HttpContext.Current;
if (currentContext.IsWebSocketRequest ||
currentContext.IsWebSocketRequestUpgrading)
{
// several out-dated(?) examples would
// use 'new MySocketHandler' for ???
var unknown = new ????
currentContext.AcceptWebSocketRequest(unknown);
return Request.CreateResponse(HttpStatusCode.SwitchingProtocols);
}
}
}
class MySocketHandler : WebSocketHandler
{
public MySocketHandler(): base(2048){}
...
}
К сожалению, AcceptWebSocketRequest больше не принимает WebSocketHandler, вместо этого его новая подпись...
public void AcceptWebSocketRequest(Func<AspNetWebSocketContext, Task> userFunc)
Есть ли у кого-нибудь ссылка или быстрый пример внедрения сырых веб-сайтов в приложении ASP.NET Web API, которое является актуальным?