Настройка 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