1) Real-time capabilities on the web have improved due to factors like increased internet usage, better server infrastructure, and more consistent browser capabilities.
2) Many applications now effectively require real-time functionality to provide up-to-date information and engage users. Real-time is becoming an expected part of the user experience.
3) Emerging technologies like the Internet of Things and event streaming APIs will further drive real-time experiences across more domains in the future. Real-time capabilities will continue integrating into more areas of applications and systems.
Sales Territory Management: A Definitive Guide to Expand Sales Coverage
Real-Time Web Apps in 2015 & Beyond
1. Real-Time Web Apps in 2015 & Beyond
PHIL @LEGGETTER
Head of Evangelism
pusher.com
1 / 114
@leggetter
2. A bit about me
Working with Real-Time Tech since 2001
Software Engineer
APIs, SDKs, Docs, Developer Experience
Blogger & Author
Roles:
Caplin Systems
ESRI
Caplin Systems
Pusher
Caplin Systems/BladeRunnerJS
Pusher
2 / 114
31. 2. Improved Server Power
Processors and Memory are cheaper & faster
More data can be processes
Connections can be dealt with (C10k problem)
Scaling is easier
31 / 114
32. 3. Web Browser Capabilities and
Consistency
Cross browser XMLHTTPRequest support
CORS
Server Sent Events / EventSource
WebSocket
WebRTC
32 / 114
39. Internet Usage (per day)
200 billion emails
7 million blog posts written†
500 million tweets
39 / 114
40. Internet Usage (per day)
200 billion emails
7 million blog posts written†
500 million tweets
55 million Facebook status updates
5 billion Google+ +1's
60 million Instagram photos posted
2 billion minutes spent on Skype
33 million hours of Netflix watched
200 million hours of YouTube watched
40 / 114
43. Max Williams (@maxthelion) - CEO, Pusher
“I'm not sure I believe that there is such a thing
as "realtime apps" any more. Apps either update
instantly and smoothly, or they appear broken. I feel
that "realtime" as a feature has moved down the
Kano graph. It is much more of an expectation, than
an "exciter".
43 / 114
69. Server
public class GameHub : Hub {
public void Move(Player p, int x, int y) {
// Check if move is allowed
// Call the broadcastMessage method to update clients.
Clients.All.playerMoved(p, x, y);
}
}
Client
$.connection.hub.start(); // async
var game = $.connection.gameHub;
game.client.playerMoved = function (player, x, y) {
// update game
};
game.server.move( me, x, y );
69 / 114
76. DataSync
var myDataRef = new Firebase('https://my-app.firebaseio.com/');
myDataRef.push( {creator: '@leggetter', text: 'Not a Test!'} );
myDataRef.on( 'child_added', function(snapshot) {
// Add the data
});
myDataRef.on( 'child_changed', function(snapshot) {
// Update the data
});
myDataRef.on( 'child_removed', function(snapshot) {
// Remove the data
});
76 / 114
77. Self Hosted:
CouchDB + pouchdb
DerbyJS
LowlaDB
Meteor
ShareJS
Hosted:
Firebase
Flybase
Google Drive Realtime API
Realtime.co
Simperium
Syncano
Data Sync Solutions
77 / 114
110. Summary
Internet === Communications platform
Easier to innovate
Everybody has real-time data
Use it to build expected experiences
If not, your apps will feel broken
110 / 114
111. Summary
Internet === Communications platform
Easier to innovate
Everybody has real-time data
Use it to build expected experiences
If not, your apps will feel broken
Future
Improvements: Infrastructure & Standards
IoT
APIs
Event Streams
111 / 114
112. Realtime Internet Apps ===
Internet of Things ===
Web Browsers +
Web Servers +
Native Apps +
Devices +
...
112 / 114
113. Real-Time Web Apps in 2015 & Beyond
Thanks! Feedback & Questions!
PHIL @LEGGETTER
Head of Evangelism
pusher.com
113 / 114
114. References
Pusher
These slides - leggetter.github.io/realtime-internet-apps/
Mary Meeker's internet trend report
Kano model
DDP Protocol
Socket.IO protocol
MQTT
Real-Time Web Tech Guide
The end of apps as we know them - Intercom
114 / 114