Настройка ASP.NET Core 1.0 WebSocket?

Я пытаюсь найти пример настройки WebSockets в ASP.NET Core 1.0; все они выглядят для предыдущих версий ASP.NET, а некоторые полагаются на свойства, которые, как представляется, не существуют в context (для меня).

В основной документации есть только местозаполнитель. http://docs.asp.net/en/latest/

Например:

app.UseWebSockets();

app.Use(async (context, next) =>
{
    if (context.IsWebSocketRequest)
    {
        WebSocket webSocket = await context.AcceptWebSocketAsync();
        await EchoWebSocket(webSocket);
    }
    else
    {
        await next();
    }
});

Не работает, потому что IsWebSocketRequest не существует. Каков правильный подход в ASP.NET Core 1.0?

Ответы

Ответ 1

После некоторой разборки похоже, что ее немного перемещали; и есть новый WebSocketManager

app.UseWebSockets();

app.Use(async (context, next) =>
{
    var http = (HttpContext) context;

    if (http.WebSockets.IsWebSocketRequest)
    {
        WebSocket webSocket = await http.WebSockets.AcceptWebSocketAsync();
    }
});

Также выясняется, что из-за ошибки компиляции он предположил, что контекст имеет тип RequestDelegate. После исправления использования context.WebSockets.IsWebSocketRequest теперь он знает, что контекст HttpContext