Подтвердить что ты не робот

.NET 4.5 WebSockets vs SignalR

Я видел signalR vs html5 websockets для приложения asp.net MVC chat, но он не отвечает на мой вопрос 100%, поскольку он основан на HTML5 WebSockets, который Microsoft, возможно, расширилась в .NET 4.5 с помощью своего объекта WebSocket.

Мне интересно, действительно ли функция WebSocket делает то же самое, что и SignalR, и возвращается к длинному опросу, когда WebSockets недоступны? Разумеется, Microsoft будет применять ту же технологию, что и SignalR, в своем подходе к этой технологии?

Edit:

Для кого-то другого, интересующегося этим, я нашел этот комментарий наиболее полезным для понимания сценария и почему я буду использовать SignalR:

Ну, на самом деле это не так. До сих пор у IIS и ASP.NET не было что-либо встроенное в поддерживаемые WebSockets, поэтому проект SignalR должен был постройте его сами. Теперь, когда Microsoft предоставляет сантехнику SignalR может легко переключиться на использование Microsoft, либо в дополнение, либо вместо их собственных. SignalR - это абстракция над деталями реализации, класс WebScockets - это деталь реализации

4b9b3361

Ответ 1

  • Мне интересно, действительно ли функция WebSocket делает то же самое, что и SignalR, и возвращается к длинному опросу, когда WebSockets недоступны?

    WebSockets - это новый протокол, независимый от других методов связи. Из RFC

    Цель этой технологии - предоставить механизм для браузера приложениям, которые нуждаются в двусторонней связи с серверами , что делает не полагайтесь на открытие нескольких HTTP-соединений (, например,, используя XMLHttpRequest или s и длинный опрос).

  • Разумеется, Microsoft будет применять ту же технологию, что и SignalR, в своем подходе к этой технологии?

    Нет, если они хотят соответствовать спецификации, они не будут. Разумеется, ничто не мешает Microsoft разрабатывать API более высокого уровня, подобный SignalR, который абстрагировал бы детали коммуникации и предлагал бы изящный откат. Однако этот гипотетический API, вероятно, будет построен поверх WebSocket, а не заменять его.

Ответ 2

Я думаю, что SignalR - это путь, и в любом случае он будет частью самой .NET(и, вероятно, расширит/сменит/заменит поддержку веб-сокетов). Он использует веб-сокеты, когда он поддерживается, и последовательный взлом запросов клиента, когда он отсутствует, так что это путь.

Update:

Поскольку этот ответ по-прежнему поддерживается, стоит упомянуть, что SignalR теперь официально является частью ASP.NET.

Отметьте http://asp.net/signalr

Ответ 3

SignalR использует OWIN, который будет использовать соединение WebSockets, если браузер поддерживает веб-сокеты и длительный опрос, если браузер не поддерживает WebSockets.