Upload
elad-avneri
View
28
Download
2
Tags:
Embed Size (px)
Citation preview
Copyright © SELA Software & Education Labs, Ltd. | 14-18 Baruch Hirsch St., Bnei Brak 51202, Israel | www.selagroup.com
Real-Time Web Applications with SignalR
http://il.linkedin.com/in/eladavneri/
http://blogs.microsoft.co.il/elada
Elad AvneriArchitect, ALM and Software Development
What is SignalR?
SignalR is a library for ASP.NET developers that simplifies the process of adding real-time
web functionality to applications
Real-time: 2 Way CommunicationSignalR is a library for ASP.NET developers that simplifies the process of adding real-time web functionality to applications
Push content to connected clientsWhat for?
Instead of refreshMonitoringGamingProgressChatEtc…
Real-time: Performance
Throughput100,000s of messages per secondVery low memory overhead
ScaleFully async to optimise resource utilisation1,000s of connections per server (concurrent)Supports horizontal scale-out using pluggable message bus backplane
SimpleSignalR is a library for ASP.NET developers that simplifies the process of adding real-
time web functionality to applications
It’s a kind of magic… we’ll see in a minuteAll “plumbing” is done behind the scenesAutomatically choosing the most efficient protocol
Server SideSignalR is a library for ASP.NET developers that simplifies the process of adding real-
time web functionality to applications
HostSelf host OWINIIS
.NetScaling out Azure mobile services
Client SideSignalR is a library for ASP.NET developers that simplifies the process of adding real-time web functionality to applications
JavaScriptAny .Net flavorObjective CJava
WebDesktopMobile
Client SideSignalR is a library for ASP.NET developers that simplifies the process of adding real-
time web functionality to applications
Available as NuGet packages for both client and server
Features
Full Duplex RPC (=Remote Procedure Call)Connection management
Maintain connection statusEvents
Connections groupingE.g. Chat rooms
“Fake” Bi-directional Transport
Got Data?
Got Data?
Got Data?
Here’s some data!
Got Data?
Got Data?
Got Data?ServerClient
SignalR Fallback
Long Polling
Forever Frames
Server Sent Events
Web Sockets
HTML 5
Comet
“Fake” “Real”
APIs
HubsHigh levelRPCAutomatic client proxy generationStrongly typed
Persistent connectionLow levelDirect access to the communication protocolMessaging modelMuch more communication events
Security
Authentication is done by the hosting applicationAuthorizations in the Hub or method level with attributes
Broadcast Models
Client
Client
ClientHub
Clients.All.doWork()Clients.Caller.doWork()Clients.Others.doWork()
Scale-out Options
Out of the box:SQL ServerWindows Azure Service BusRedis
Others can be plugged-in too
Azure Mobile Services
Connected Apps
Windows Store iOSAndroid
Windows Phone 8iOSAndroidHTML 5/JS
Data in the Cloud
SQL Table Blob
User Authentication
Facebook Twitter Microsoft Google
Push Notifications
WNS & APNS GCMMPNS
SDKs
Server-Side Scripts
&
Scheduler
Copyright © SELA Software & Education Labs, Ltd. | 14-18 Baruch Hirsch St., Bnei Brak 51202, Israel | www.selagroup.com
Thank You
http://il.linkedin.com/in/eladavneri/
http://blogs.microsoft.co.il/elada
Elad AvneriArchitect, ALM and Software Development