. NET 4.5 WebSockets vs SignalR

Widziałem signalR vs html5 websockets dla asp.net aplikacja MVC chat , ale nie w 100% odpowiada na moje pytanie, ponieważ opiera się na Websocketach HTML5, które Microsoft mógł rozszerzyć w. NET 4.5 z ich obiektem WebSocket.

Zastanawiam się, czy funkcja WebSocket faktycznie robi to samo co SignalR i wraca do długich ankiet, gdy WebSockets nie są dostępne? Z pewnością Microsoft wdrożyłby tę samą technologię co SignalR w swoim podejściu do tego technologia?

Edit:

Dla wszystkich, którzy zastanawiają się nad tym, znalazłem ten komentarz najbardziej pomocne, aby zrozumieć scenariusz i dlaczego będę używać SignalR:

Cóż, nie są naprawdę. Do tej pory IIS i ASP.NET nie miał wszystko wbudowane, które obsługiwały Websockety, więc projekt SignalR musiał zbudujcie go sami. Teraz, gdy Microsoft dostarcza hydraulikę SignalR może łatwo przełączyć się na implementację Microsoftu, oprócz lub zamiast swoich. SignalR jest abstrakcji nad szczegółami implementacji, Klasa WebScockets jest szczegóły realizacji

Author: Community, 2012-03-02

3 answers

  1. Zastanawiam się, czy funkcja WebSocket faktycznie robi to samo co SignalR i wraca do długich ankiet, gdy WebSockets nie są dostępne?

    WebSockets jest nowym protokołem niezależnym od innych technik komunikacyjnych. Z RFC

    [[3]}Celem tej technologii jest dostarczenie mechanizmu dla przeglądarki aplikacji, które wymagają dwukierunkowej komunikacji z serwerami , która nie polegaj na otwieraniu wielu połączeń HTTP (np. za pomocą XMLHttpRequest lub S I long ankiet ).
  2. Z pewnością Microsoft zaimplementowałby tę samą technologię co SignalR w swoim podejściu do tej technologii?

    Nie, jeśli chcą dostosować się do specyfikacji, nie będą. na pewno nic nie powstrzyma Microsoftu przed opracowaniem interfejsu API wyższego poziomu, podobnego do SignalR, który odciągałby szczegóły komunikacji i oferowałby wdzięczne wsparcie. Jednak że hipotetyczny API prawdopodobnie budowałoby się na bazie klasy WebSocket W przeciwieństwie do zastępowania jej.

 22
Author: R0MANARMY,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-02 00:08:01

Myślę, że SignalR jest drogą do zrobienia i tak będzie częścią. NET (i prawdopodobnie rozszerzyć / merge / replace Wsparcie web-sockets). Używa gniazd sieciowych, gdy jest obsługiwana, i spójnych ankiet klientów, gdy nie jest, więc jest to droga do zrobienia.

Update:

Ponieważ ta odpowiedź jest wciąż upvoted, warto wspomnieć, że SignalR jest teraz oficjalnie częścią ASP.NET.

Sprawdź http://asp.net/signalr

Aktualizacja:. NET Rdzeń

SignalR jest również dodawany do. NET Core, jak @yazanpro zauważył w komentarzach.

[[0]} jest dostępny w. Net Core 2.1, a także posiada oficjalną dokumentację .
 34
Author: Meligy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-01 05:50:59

SignalR używa OWIN, który użyje połączenia WebSockets, jeśli przeglądarka obsługuje gniazda sieciowe i long polling, jeśli przeglądarka nie obsługuje WebSockets.

 8
Author: Avi Ben-Margi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-28 10:51:09