Использование WebSockets с ASP.NET Web API

Каков предпочтительный метод для использования необработанных веб-сокетов в приложении ASP.NET Web API?

Мы хотели бы использоватьдвоичный WebSockets на пару наших интерфейсов нашего приложения ASP.NET Web API. Мне трудно определить, как это должно быть сделано, так как, кажется, есть несколько конфликтующих и / или устаревших реализаций онлайн для .NET.

Есть примеры, которые выглядят как ASP.NET, как этоодин, но ясчитать должно быть средство для использования веб-сокетов в рамках веб-API. Как я знаю, вы можете использовать Signalr в WebAPI.

I думал с помощью 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, который является актуальным?

Ответы на вопрос(5)

Ваш ответ на вопрос