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
IO Insights
Search
Guillermo Rauch
October 23, 2012
Programming
800
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
IO Insights
Guillermo Rauch
October 23, 2012
More Decks by Guillermo Rauch
See All by Guillermo Rauch
The realtime web: HTTP/1.1 to WebSocket, SPDY & beyond
rauchg
6
1.6k
Socket.IO 1.0
rauchg
9
2.5k
The rise of server-side JavaScript
rauchg
4
320
Other Decks in Programming
See All in Programming
AIの中の人になってみる
htkym
0
140
プロポーザルを書いてもらう
pvcresin
0
590
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
260
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
520
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.8k
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
270
承認済みなのに差戻しできてしまうバグ、型で潰せます
shinchit
0
120
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
370
ALB ログから Trace を気合で繋げる技術
fohte
7
770
「人を評価する AI」の設計と実装
ryoyanara
0
260
業務時間外もAIに働いてもらう話
colorful12
2
8.7k
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
420
Featured
See All Featured
Ruling the World: When Life Gets Gamed
codingconduct
0
310
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
670
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
310
Building the Perfect Custom Keyboard
takai
2
850
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
830
We Have a Design System, Now What?
morganepeng
55
8.3k
Building Applications with DynamoDB
mza
96
7.2k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
So, you think you're a good person
axbom
PRO
2
2.1k
Facilitating Awesome Meetings
lara
57
7.1k
Optimizing for Happiness
mojombo
378
71k
Transcript
IO Insights engine.io and socket.io analytics
About
Guillermo Rauch
@rauchg
devthought.com
learnboost.com
require(‘engine.io’)
var engine = require(‘engine.io’)(server); engine.on(‘connection’, function(socket){ socket.write(‘hello’); socket.on(‘data’, function(){}); });
require(‘socket.io’)
var io = require(‘socket.io’)(server); io.on(‘connection’, function(socket){ socket.emit(‘my’, { event: ‘data’
}); socket.on(‘random’, function(){}); }); io.of(‘/namespace’).on();
Data packets and events are the new currency
But all the tooling is oriented around REST
None
Server insight
1st strategy
Built-in instrumentation
require(‘debug’)(‘wat’)
None
2nd strategy
Meta events
socket.on(‘packet’, function(){}); socket.on(‘packetCreate’, function(){});
3rd strategy
Visualization!
require(‘engine.io-monitor’);
Captures and displays engine.io traffic
Like redis MONITOR
Realtime insight into transport usage
12% 13% 34% 41% polling-xhr polling-jsonp websocket flashsocket
Realtime insight into browser / device usage
Realtime insight into latency
None
Client insight
1st strategy
localStorage.debug
None
Looks awful
2nd strategy
Chrome extension
None
None
How?
None
What’s next?
More visualizations
Protocol analysis eg: display socket.io events differently
Custom protocols
Analyze and document performance implications
Thanks!