SignalR Komunikacja w czasie rzeczywistym z SignalR
O sobie
Agenda Co to jest SignalR i jak wygląda komunikacja? Jakie technologie komunikacji używa? W jakich środowiskach można używać? Gdzie w praktyce można użyć? Instalacja + Przykłady Wady i Zalety Problemy Podsumowanie
Co to jest SignalR? SignalR to bardzo sprytna biblioteczka pozwalająca na komunikację serwer->klient w aplikacjach internetowych.
Standardowa komunikacja request response
Komunikacja w SignalR push lub broadcast
Komunikacja w SignalR Obsługuje różne technologie komunikacyjne Warstwy komunikacyjne Hub zapewnia prostą komunikację pomiędzy klientam a serwerem Komentarz do slajdu: SignalR daje dwa programistyczne modele połączenia (hubs, persistent connections) Persistent API Connection jest niezależna od użytej technologii Hub API to kolejny poziom abstrakcji Hub API oferuje najbardziej wygodny i korzystne API do komunikacji Persistent API Połączenie może być tylko interesujące, jeśli chcesz zintegrować z istniejącym komunikatów aplikacji opartych na serwerze lub jeśli potrzebujesz jakiegoś powodu kontroli szczegółowej na poziomie wiadomości. Umożliwia wymianę danych między klientem a serwerem (i vice versa) na niskim poziomie
Komunikacja w SignalR Lista używanych technologii transportu w zależności od przeglądarki. SignalR wybiera najlepszy typ transportu, które są wspierane i przez klienta i serwera.(chociaż można wymusić określony transport)!!! W przypadku WebSockets sprawa nie jest prosta - nie zawsze działa ale teoretycznie powinno działać po instalacji Windows Serwer 2012 i IIS8
Komunikacja w SignalR Lista używanych technologii transportu w zależności od systemu Windows lub aplikacji Silverlight. Wymaganie to.net 4 +
Komunikacja w SignalR Lista używanych technologii transportu w w aplikacjach Windows Store i Windows Phone 8. Wymaganie to.net 4 +
Co wchodzi w skład SignalR Serwer Biblioteka kliencka w.net Biblioteka kliencka w JavaScript Biblioteka kliencka w innych językach
Użycie
Ciekawostka Istnieje biblioteka SignalR w Objective-C dla ios i Mac https://github.com/dyknow/signalr-objc
Gdzie w praktyce? Chat Gry online dla wielu użytkowników Monitorowanie aplikacji, notyfikacje Oprogramowanie zespołowe Aplikacje giełdowe
INSTALACJA
INSTALACJA
PRZYKŁAD 1
PRZYKŁAD 1 do projektu dodajemy klasę dziedziczącą po Hub dodajemy referencję do dynamicznego skryptu "/signalr/hubs": <script src="/signalr/hubs"></script> w global.asax dodajemy: RouteTable.Routes.MapHubs(); Komentarz do slajdu: Hub jest struktura, która umożliwia prostą komunikacię do kolekcji klientów (ich systemów) nasłuchujacych poleceń do wykonania.
PRZYKŁAD 2
PRZYKŁAD 3
PRZYKŁAD 4
PRZYKŁAD 4 SQL Service Broker zapewnia rozproszoną, asynchroniczną infrastrukturę pozwalającą na tworzenie rozbudowanych aplikacji korporacyjnych. Service Broker jest mechanizmem kolejkowania komunikatów dostępnym od SQL Server 2008. Asynchroniczne przekazywanie danych Wyzwalacze rozproszone Poprawia wydajność Poprawia skalowalność
Zalety Wieloplatformowość Wspiera wszystkie nowe przeglądarki Prosta obsługa trudnego tematu Obszerne zastosowanie Obszerny help na MSDN Ciągle aktualizowany kod
Wady Nie znalazłem
Jakie problemy zauważyłem? Firefox inaczej przełącza strony niż inne przeglądarki Połączenie otwarte powinno być zamknięte lub przerwane jak się tego nie zrobi będzie dużo otwartych requestów (nie jestem wstanie wam zaprezentować na tej stacji roboczej)
Podsumowanie i pytania Podsumowanie waszych pytań: Statystyki i mierzalność SignalR można poczytać http://www.dotnetcurry.com/showarticle.aspx?id=913 i samemu sobie zmierzyć wszytko Tu można sobie poczytać pytania i odpowiedzi dotyczące SignalR http://stackoverflow.com/search?q=signalr (jeste z tego ze 100 stron ale każdy znajdzie coś dla siebie ) Bezpieczeństwo - tak jak mówiłem na spotkaniu polecam poczytać dokumetnacje (http://www.asp.net/signalr/overview/security/introduction-to-security) ale na stackoverflow w tej odpowiedzi http://stackoverflow.com/questions/9991035/securing-signalr-calls można sobie zobaczyć przykład prostego zabezpieczenia SignalR w użyciu - https://github.com/signalr/signalr/wiki/projects- Using-SignalR
Źródła http://signalr.net/ http://www.asp.net/signalr http://www.campusmvp.net/signalr-ebook http://www.asp.net/signalr/overview/security/introduction-to-security http://stackoverflow.com/questions/16983630/how-does-signalr-decidewhich-transport-method-to-be-used Kod żródłowy https://github.com/signalr/signalr/tree/master/src/microsoft.aspnet.sig nalr.core/transports
Poszukiwana & Poszukiwany Programista.NET Chętnych proszę o kontakt ze mną mateusz@nostitz.pl lub mateusz.nostitz-jackowski@expertsender.com z dopiskiem TZG.NET.
Dziękuję za uwagę