Transcript Document

ASP.NET SignalR:
•
Assumptions
 You’re already a Web Site Dev
 You’re interested in more simply making your web
sites more responsive
 If you’re not already hosting sites in Windows Azure,
what’s the value proposition?
 Ubiquitous & ready-to-go ecosystem
 Pre-made plumbing (security, data, etc)
 Pay as you go, use what you need
What is it?
 SignalR is an abstraction that intelligently decides
how to enable real-time over HTTP.
When would I use it?
 Currently using polling
 Client to client communication
 Dashboards and monitoring
 Collaboration
 Progress reporting
 Gaming
When would I NOT use it?
 Durable messaging
Where does it fit in my application?
 Server-side
 ASP.NET, self-hosted service
 Client-side
 Web and others
Why should I use it?
 Simplicity
 Reach
 Performance
3 Core Concepts
 Connection
 Represents a simple endpoint for sending single-recipient, grouped or broadcast
messages
 Hub
 A more high-level pipeline built upon the Connections API that allows your client
and server to call methods on each other directly
 Backplane
 Allows you to scale your application to multiple servers.
Persistent Connections
 The format of the actual message sent needs to be
specified.
 The developer prefers to work with a messaging and
dispatching model rather than a remote invocation
model.
 An existing application that uses a messaging model
is being ported to use SignalR.
Using a Hub - Steps
 Create OWIN Startup class
 Create Hub class
 Create HTML file






Include JQuery and SignalR Javascript libraries
Create connection
Create Hub proxy
Create client-side handlers
Start the connection
When connection is complete, wire up client-side events
More about Hubs
Since Hubs are called on
the client by name, the
name can be customized
if needed
A hub is a .NET class
that inherits from
Microsoft.AspNet.SignalR.
Hub
The Clients property of a
Hub class exposes
dynamic properties useful
for targeting specific
clients
Hub classes also have
virtual methods useful for
responding to
connected/disconnected
events
Sending messages to all connected clients
Clients.All.doWork()
Sending messages to the calling client
Clients.Caller.doWork()
Sending messages to other connected clients
Clients.Others.doWork()
Sending messages to specific users
Clients.Users(“Sam”).doWork()
Servers Supported
 Windows Server 2012
 Windows Server 2008 r2
 Windows 8
 Windows 7
 Windows Azure
 IIS 8 or IIS 8 Express, IIS 7 and 7.5.
Clients Supported
 Internet Explorer 8+ (Modern, Desktop, Mobile)
 Chrome, Firefox, Safari (Windows and Mac)
 current version – 1
 Opera – Windows only
 Android browser
 Windows Desktop (WinForms, WPF, Silverlight)
 Windows Store Applications
 Windows Phone
 Xamarin platforms (iOS, Android)
JavaScript Client
.NET Client
Allowing Authorized Users Only
Controlling Access by Role
3/10/2015
Lessons Applying Responsive Design
to Our Company Website