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