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
3
770
IO Insights
Guillermo Rauch
October 23, 2012
Tweet
Share
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
290
Other Decks in Programming
See All in Programming
Making TCPSocket.new "Happy"!
coe401_
1
130
技術選定を未来に繋いで活用していく
sakito
3
100
マルチアカウント環境での、そこまでがんばらない RI/SP 運用設計
wa6sn
0
710
Go1.24 go vetとtestsアナライザ
kuro_kurorrr
2
840
php-fpm がリクエスト処理する仕組みを追う / Tracing-How-php-fpm-Handles-Requests
shin1x1
5
2.9k
SQL Server ベクトル検索
odashinsuke
0
170
これだけは知っておきたいクラス設計の基礎知識 version 2
masuda220
PRO
24
6.1k
サービスレベルを管理してアジャイルを加速しよう!! / slm-accelerate-agility
tomoyakitaura
1
170
PHPバージョンアップから始めるOSSコントリビュート / how2oss-contribute
dmnlk
1
990
Unlock the Potential of Swift Code Generation
rockname
0
240
データベースエンジニアの仕事を楽にする。PgAssistantの紹介
nnaka2992
9
4.5k
AHC 044 混合整数計画ソルバー解法
kiri8128
0
330
Featured
See All Featured
For a Future-Friendly Web
brad_frost
176
9.7k
It's Worth the Effort
3n
184
28k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.5k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
The World Runs on Bad Software
bkeepers
PRO
67
11k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
Unsuck your backbone
ammeep
670
57k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
34
2.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
13
1.4k
The Cult of Friendly URLs
andyhume
78
6.3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
650
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!