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
790
3
Share
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.4k
The rise of server-side JavaScript
rauchg
4
300
Other Decks in Programming
See All in Programming
条件判定に名前、つけてますか? #phperkaigi #c
77web
2
900
Geminiをパートナーに神社DXシステムを個人開発した話(いなめぐDX 開発振り返り)
fujiba
0
130
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.3k
Coding as Prompting Since 2025
ragingwind
0
600
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
3
430
見せてもらおうか、 OpenSearchの性能とやらを!
shunta27
1
160
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
170
Reactive ❤️ Loom: A Forbidden Love Story
franz1981
2
210
おれのAgentic Coding 2026/03
tsukasagr
1
120
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
270
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
220
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
530
Featured
See All Featured
A better future with KSS
kneath
240
18k
Facilitating Awesome Meetings
lara
57
6.8k
Visualization
eitanlees
150
17k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Making Projects Easy
brettharned
120
6.6k
The Curious Case for Waylosing
cassininazir
0
280
Rails Girls Zürich Keynote
gr2m
96
14k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Raft: Consensus for Rubyists
vanstee
141
7.4k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
490
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
370
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
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!