×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
IO Insights engine.io and socket.io analytics
Slide 2
Slide 2 text
About
Slide 3
Slide 3 text
Guillermo Rauch
Slide 4
Slide 4 text
@rauchg
Slide 5
Slide 5 text
devthought.com
Slide 6
Slide 6 text
learnboost.com
Slide 7
Slide 7 text
require(‘engine.io’)
Slide 8
Slide 8 text
var engine = require(‘engine.io’)(server); engine.on(‘connection’, function(socket){ socket.write(‘hello’); socket.on(‘data’, function(){}); });
Slide 9
Slide 9 text
require(‘socket.io’)
Slide 10
Slide 10 text
var io = require(‘socket.io’)(server); io.on(‘connection’, function(socket){ socket.emit(‘my’, { event: ‘data’ }); socket.on(‘random’, function(){}); }); io.of(‘/namespace’).on();
Slide 11
Slide 11 text
Data packets and events are the new currency
Slide 12
Slide 12 text
But all the tooling is oriented around REST
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
Server insight
Slide 15
Slide 15 text
1st strategy
Slide 16
Slide 16 text
Built-in instrumentation
Slide 17
Slide 17 text
require(‘debug’)(‘wat’)
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
2nd strategy
Slide 20
Slide 20 text
Meta events
Slide 21
Slide 21 text
socket.on(‘packet’, function(){}); socket.on(‘packetCreate’, function(){});
Slide 22
Slide 22 text
3rd strategy
Slide 23
Slide 23 text
Visualization!
Slide 24
Slide 24 text
require(‘engine.io-monitor’);
Slide 25
Slide 25 text
Captures and displays engine.io traffic
Slide 26
Slide 26 text
Like redis MONITOR
Slide 27
Slide 27 text
Realtime insight into transport usage
Slide 28
Slide 28 text
12% 13% 34% 41% polling-xhr polling-jsonp websocket flashsocket
Slide 29
Slide 29 text
Realtime insight into browser / device usage
Slide 30
Slide 30 text
Realtime insight into latency
Slide 31
Slide 31 text
No content
Slide 32
Slide 32 text
Client insight
Slide 33
Slide 33 text
1st strategy
Slide 34
Slide 34 text
localStorage.debug
Slide 35
Slide 35 text
No content
Slide 36
Slide 36 text
Looks awful
Slide 37
Slide 37 text
2nd strategy
Slide 38
Slide 38 text
Chrome extension
Slide 39
Slide 39 text
No content
Slide 40
Slide 40 text
No content
Slide 41
Slide 41 text
How?
Slide 42
Slide 42 text
No content
Slide 43
Slide 43 text
What’s next?
Slide 44
Slide 44 text
More visualizations
Slide 45
Slide 45 text
Protocol analysis eg: display socket.io events differently
Slide 46
Slide 46 text
Custom protocols
Slide 47
Slide 47 text
Analyze and document performance implications
Slide 48
Slide 48 text
Thanks!