Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Real-time Communications with SignalR
Search
Shravan Kumar Kasagoni
May 19, 2015
Technology
0
49
Real-time Communications with SignalR
Shravan Kumar Kasagoni
May 19, 2015
Tweet
Share
More Decks by Shravan Kumar Kasagoni
See All by Shravan Kumar Kasagoni
Functional Programming in JavaScript
shravan
0
35
ASP.NET Core – Deep Dive on Building a Real Website
shravan
0
41
Cross-Platform Mobile Development using Visual Studio and Xamarin
shravan
1
39
Angular 2 with TypeScript
shravan
1
160
Building Next Generation Web Apps and Services using ASP.NET 5
shravan
0
88
Writing Application-Scale JavaScript:TypeScript
shravan
0
55
Running, improving and maintaining a site in the real world
shravan
0
36
Open Web Interface for .NET
shravan
0
140
Glance at Visual Studio 2013 ASP.NET and Web Tools 2013
shravan
0
74
Other Decks in Technology
See All in Technology
企業の生成AIガバナンスにおけるエージェントとセキュリティ
lycorptech_jp
PRO
2
140
シークレット管理だけじゃない!HashiCorp Vault でデータ暗号化をしよう / Beyond Secret Management! Let's Encrypt Data with HashiCorp Vault
nnstt1
3
230
Function Body Macros で、SwiftUI の View に Accessibility Identifier を自動付与する/Function Body Macros: Autogenerate accessibility identifiers for SwiftUI Views
miichan
2
170
カミナシ社の『ID管理基盤』製品内製 - その意思決定背景と2年間の進化 #AWSUnicornDay / Kaminashi ID - The Big Whys
kaminashi
3
860
20250903_1つのAWSアカウントに複数システムがある環境におけるアクセス制御をABACで実現.pdf
yhana
3
520
Snowflakeの生成AI機能を活用したデータ分析アプリの作成 〜Cortex AnalystとCortex Searchの活用とStreamlitアプリでの利用〜
nayuts
1
450
生成AIでセキュリティ運用を効率化する話
sakaitakeshi
0
400
Rustから学ぶ 非同期処理の仕組み
skanehira
1
110
MCPで変わる Amebaデザインシステム「Spindle」の開発
spindle
PRO
3
3.1k
下手な強制、ダメ!絶対! 「ガードレール」を「檻」にさせない"ガバナンス"の取り方とは?
tsukaman
2
410
品質視点から考える組織デザイン/Organizational Design from Quality
mii3king
0
160
スマートファクトリーの第一歩 〜AWSマネージドサービスで 実現する予知保全と生成AI活用まで
ganota
1
190
Featured
See All Featured
Become a Pro
speakerdeck
PRO
29
5.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
What's in a price? How to price your products and services
michaelherold
246
12k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Side Projects
sachag
455
43k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Visualization
eitanlees
148
16k
Typedesign – Prime Four
hannesfritz
42
2.8k
Embracing the Ebb and Flow
colly
87
4.8k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Transcript
Real-time Communications with SignalR Shravan Kumar Kasagoni
Agenda 1) Introduction to the real-time web 2) ASP .NET
SignalR 3) Building a real-time
Real-time Application? Real-time functionality is the ability to have server
code push content to connected clients instantly as it becomes available, rather than having the server wait for a client to request new data.
Without real-time
With real-time
Why Real-time? Users want the latest info, NOW!
Show Me Some Examples Twitter, Facebook, Mail - live
searches/updates Stock streamers Auctions Interactive games Live Scores Collaborative apps (google docs, office web apps) Live user analytics (live graphs)
How to build real-time web apps?
HTTP is an old beast… Never designed for real-time communications
Web is all about request-response Web is stateless
How to do real-time in web?
Periodic polling Poll from time to time using Ajax
Delay in communication due to polling interval Wastes bandwidth & latency Server Client Polling interval
Long polling Poll but doesn’t respond until there's data
Poll again after data received or after the connection times out Consumes server & threads & connection resources Server Client
Forever Frame Server tells client that response is chucked
Client keeps connection open until server closes it Server pushed data to the client followed by \0 Consumes server threads Server Client
HTML5 Web sockets Extension to HTTP Provides raw
sockets over HTTP Full-duplex Traverses proxies It's still a working draft Not every proxy server supports it Not every web server supports it Not every browser supports it They are raw sockets!
too many options
None
Basically…
Introducing SignalR • Abstraction over transports • Events instead of
task/async • Connection management • Broadcast or target specific client
What does SignalR do? • Client to Server persistent connection
over HTTP • Easily build multi-user, real-time web applications • Auto-negotiates transport
SignalR Fallback Long Polling Forever Frames Server Sent Events Web
Sockets
What does SignalR do? • Allows server-to-client push and RPC
• Built async to scale to 1000’s of connections • Scale out with Service Bus, SQL Server & Redis • Open Source on GitHub
Backplane SignalR Backplanes Load balancing via a common transport mechanism
Thank You