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