2015-08-19 6 views
14

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

В основной документации имеется только местозаполнитель. 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?

+0

Учитывая отсутствие информации об ASP.NET 5 на данный момент, и в буквальном смысле ничего не стоит в google для более сложных вопросов, я бы предпочел оставить вопрос, чтобы увидеть если кто-то действительно знает, как это сделать. Бета или нет, если люди используют его, я бы сказал, что это правильный вопрос, хотя, возможно, стоило бы реорганизовать заголовок, чтобы отразить номер бета-версии, поэтому он, по крайней мере, станет отдельным от будущих вопросов на ASP.NET 5, если структура очень разные. – Grofit

+0

ASP.NET 5 все еще находится в стадии бета-тестирования, поэтому вы просите учебник по движущейся цели. И текущие сборки для [Web Sockets в ASP.NET 5] (https://github.com/aspnet/WebSockets), похоже, не готовы, поскольку сборки не работают. – mason

+1

Ну, бета-файлы на NuGet. Бета обычно означает, что они заблокированы и охотятся за ошибками. Я сделал эту проблему с конкретным кодом сейчас, поэтому надеюсь, что прыгает, хотя SO hoops ... –

ответ

13

После некоторой разборки, похоже, что он немного перемещен; и есть новый 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

+0

Я пытаюсь реализовать websockets в .net core 1.0, но не в состоянии чтобы найти пакеты, которые работают с ним. Можете ли вы поделиться тем, какие пакеты вы использовали, и какую сторону клиента я должен использовать, чтобы реагировать. Вот ссылка на мой вопрос https://stackoverflow.com/questions/47534840/does-signalr -or-websockets-works-with-asp-net-core-1-0 Спасибо –

Смежные вопросы