Uso de WebSockets con ASP.NET Web API

¿Cuál es el método preferido para usar sockets web sin procesar en una aplicación ASP.NET Web API?

Nos gustaría usarbinario WebSockets en un par de nuestras interfaces de nuestra aplicación ASP.NET Web API. Estoy teniendo dificultades para determinar cómo se debe hacer esto, ya que parece haber varias implementaciones en línea o desactualizadas en línea para .NET.

Hay ejemplos que parecen ser ASP.NET como esteuno, pero yopensar debe haber un medio para usar websockets dentro del marco de la API web. Como sé, puede usar Signalr dentro de WebAPI.

I pensamiento usando Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler funcionaría, pero no estoy seguro de cómo vincular el WebSocketHandler al controlador ...

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){}

    ...
}

Desafortunadamente, AcceptWebSocketRequest ya no acepta un WebSocketHandler, sino que su nueva firma es ...

public void AcceptWebSocketRequest(Func<AspNetWebSocketContext, Task> userFunc)

¿Alguien tiene un enlace o una muestra rápida de implementación de sockets web sin procesar en la aplicación API web ASP.NET que esté actualizada?

Respuestas a la pregunta(5)

Su respuesta a la pregunta