.NET 4.5 WebSockets против SignalR

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

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

Редактировать:

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

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


person Chris Dixon    schedule 01.03.2012    source источник
comment
Как первоначально упоминалось в ответе, план SignalR должен был стать частью .NET, что действительно произошло, поскольку теперь это официальная часть ASP.NET asp.net/signalr - я обновил свой ответ, добавив ссылку, и подумал, что вам может быть интересно узнать.   -  person Meligy    schedule 16.04.2013
comment
Ах, потрясающе! Спасибо за обновление этого @MohamedMeligy, очень приятно видеть SignalR в основной библиотеке.   -  person Chris Dixon    schedule 16.04.2013


Ответы (3)


  1. # P1 #
    # P2 #
    # P3 #
  2. # P4 #
    # P5 #
person R0MANARMY    schedule 01.03.2012
comment
Я думаю, что OP имеет в виду это: msdn.microsoft.com/en-us/library/ - person BFree; 02.03.2012
comment
Да, я свободен! Извините, если я не совсем понял свой вопрос RomanArmy. - person Chris Dixon; 02.03.2012
comment
@thedixon Я знаю, я тоже так это понял. Я придерживаюсь части RFC, в которой говорится, что не полагается на ..., что означает, что спецификация для WebSockets не будет возвращаться к долгому опросу. Таким образом, если Microsoft хочет соответствовать спецификации, они также не будут заставлять свой класс WebSocket возвращаться к длительному опросу. - person R0MANARMY; 02.03.2012
comment
Итак, в этом отношении они стреляют себе в ногу, отставая на шаг от SignalR еще до того, как они начнут использовать эту технологию, если они планируют согласовать WebSocket с веб-спецификацией? Пытаюсь понять, каковы на самом деле планы Microsoft на будущее. - person Chris Dixon; 02.03.2012
comment
@thedixon Ну, на самом деле это не так. До сих пор в IIS и ASP.NET не было ничего встроенного, что поддерживало бы WebSockets, поэтому проекту SignalR пришлось создавать его самостоятельно. Теперь, когда Microsoft предоставляет сантехнику, SignalR может легко переключиться на использование реализации Microsoft, либо в дополнение к своей собственной, либо вместо нее. SignalR - это абстракция над деталями реализации, класс WebScockets - это детали реализации. - person R0MANARMY; 02.03.2012
comment
Ооо, теперь я понимаю, спасибо - отличный ответ. Хотел бы я отметить оба ответа как правильные, но я сделаю это. - person Chris Dixon; 02.03.2012
comment
Да отличный ответ. Я предполагаю, что будущее signalr будет заключаться в том, чтобы просто вырвать их индивидуальную реализацию и использовать новую. NET API. - person Chev; 17.09.2012

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

Обновление:

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

Проверьте http://asp.net/signalr

Обновление: .NET Core

SignalR также добавляется в .NET Core, как отметил в комментариях @yazanpro.

Он доступен в .NET Core 2.1 и имеет официальная документация.

person Meligy    schedule 01.03.2012
comment
Насколько я уважаю ваш ответ здесь, знаете ли вы, что сейчас WebSockets не делает то же самое? И если бы мне пришлось использовать SignalR, если есть потенциальное слияние технологий - было бы разумно использовать библиотеку SignalR сейчас с учетом этого? - person Chris Dixon; 02.03.2012
comment
Примечания, которые у меня есть по этому поводу, взяты из недавних заметок Джастина Кинга из Microsoft, когда он несколько дней назад представил SignalR в Сиднее, ALT.NET. Я понимаю, что слияние SignalR в ядре .NET будет сделано самим специалистом по SignalR, и, следовательно, вероятно, будет очень мало изменений по сравнению с текущим предложением. - person Meligy; 02.03.2012
comment
Невероятно, но они не добавили поддержку SignalR для веб-сокетов в Win7 и Server 2008. Возмутительно, правда ... - person Dave; 10.09.2013
comment
Это не вещь SignalR, это вещь IIS, которую использует signalR. Поддержка веб-сокетов была добавлена ​​в IIS 8 iis.net/learn/get-started/whats-new-in-iis-8/ - person Meligy; 10.09.2013
comment
По крайней мере, у SignalR есть лучший запасной вариант при использовании версии IIS, не поддерживающей веб-сокеты: S - person Meligy; 10.09.2013
comment
Ну, тогда это плохо для IIS и сокетов. Я фактически получил базовый механизм SignalR, уже реализованный на моем веб-сайте за пару часов, так что спасибо команде SignalR. Он использует SSE в Chrome и, вероятно, длинный опрос в IE10, но, по крайней мере, моя первая попытка сразу сработала. SignalR пока выглядит действительно красиво! - person Dave; 10.09.2013
comment
Также стоит упомянуть, что библиотека Javascript для SignalR сильно зависит от jquery. Поэтому, если вы разработали свое приложение с другой библиотекой или фреймворком javascript, например, React, у вас все равно будет мертвый груз jquery удерживает ваше приложение. - person TheZanke; 29.11.2016
comment
SignalR теперь также официально является частью ASP.NET Core: docs.microsoft.com/en-us/aspnet/core/signalr/ И официальное объявление: blogs.msdn.microsoft.com/webdev/2018/05/30/ - person yazanpro; 31.05.2018

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

person Avi Ben-Margi    schedule 18.02.2016