CodeStock is proudly partnered with:
RecruitWise and Staff with Excellence - www.recruitwise.jobs
Send instant feedback on this session via Twitter:
Send a direct message with the room number to @CodeStock
d codestock 503 This session is great!
For more information on sending feedback using Twitter while at
CodeStock, please see the “CodeStock README” in your CodeStock guide.
SilverlightShow (www.silverlightshow.net) – online
portal for everything Silverlight, XAML and Windows
Phone, 10K+ members.
* daily news * tutorials
* exclusive articles * forums
* free webinars * events
* ebooks * newsletters
CompletIT (www.completit.com) – Silverlight and
Windows Phone trainings, consultations and
development company, founder of SilverlightShow.
* Individual and group, on-site and online trainings
* Standard and custom course schedules
* Trainings by Silverlight MVP, MCT
Why do we need real-time?
New email
Twitter/Facebook updates
Stock Ticker/Live Auctions
Game Scores
Real-time Notifications
Turn-by-Turn Games
Collaboration
Progress Bars
And obviously, Chat
Existing Technologies
HTTP – purely Request/Response protocol
Internet – stateless; servers don’t call your app back
Consumption model .. But we’ve learnt tricks
Periodic/Ajax Polling – not real-time, bandwidth misuse
Image courtesy
Existing Technologies ..
Contd.
Use plugins like SL/Flash – to access sockets
Native Web Sockets help – but low level & support flaky
Long Polling – server does not respond unless X happens,
client polls after data receive or time-out
Image courtesy @maartenballiauw
Enter SignalR
An async, persistent connection/signalling library for .NET ... aids in building
real time, multi-user connected applications.
Persistent client-server connection over best transport .. Abstracts away the
transport layer.
From ASP.NET team-members (Damian Edwards & David Fowler) ..
Not officially MSFT product, but OSS Boom!
https://github.com/SignalR/SignalR
http://jabbr.net/#/rooms/signal
SignalR is broken up into a few packages on NuGet:
SignalR - Package for SignalR.Server and SignalR.Js
SignalR.Server - Server components needed for SignalR endpoints
SignalR.Js - Javascript client for SignalR
SignalR.Client - .NET client for SignalR
SignalR.WP7 & SignalR.Silverlight – For the cool folks
SignalR.WebSockets - WebSocket Transport for SignalR
Live Demos
Whoa .. What happened here?
Client calls server; Server calls client; seamlessly
No polling, at least in our code
Server maintains Clients .. Broadcast to all, group or individual clients
Low level – PersistentConnection; more control
Abstraction – Hub; easier to use
Where does this fit?
Other technologies have solved this problem
Socket.IO is a client-side Jscript library that talks to node.js
Nowjs supports namespace sync between client-server
Primary SignalR advantages
→ Simplicity & ease of use
→ Works natively in .NET
→ Works out of browser
→ Supports Web Sockets through a NuGet package
[ASP.NET 4.5/IIS 8 on Win8 only]
WebSocket is a web technology providing for multiplexing bi-directional, full-duplex
communications channels over a single TCP connection. Still being standardized.
→ Works on other platforms