Why use Pusher?

Phil Leggetter


Agenda - Why use Pusher?

* Why use Pusher? The whole purpose of the talk. Why it makes sense and it's awesome!

What is Pusher?

* It's in the cloud - normally works on it's own. Applause from sales/marketing :) * Cross platform support: Web Browsers, Mobile, iPhone, iPad, Desktop * Realtime messaging * WebSockets are the standard for real-time bi-directional full duplex communication between a server and a client. * Previous technology attempts have been hacks or workarounds. This stuff is now a standard and has massive backing from Google, Mozilla, Opera and even Microsoft have prototyped it and it *might* be in IE10. That said, it doesn't matter. There's fallback to Flash which covers 99% of all users according to Adobe. * This all sounds great but what can you build with it?

What can you build with Pusher?

* Realtime data - financial data, sports data, betting odds, where instant updates matter * Notifications: New tweets, facebook status updates, calendar appointment prompts, users coming online prompt * Customer support chat, user to user chat (facebook chat) * Collaboration: Google Draw, Docs, Spreadsheets * Social media reaction/integration: Tweets, Facebook likes, Blog post notifications, Images from TwitPic or yFrog/ImageShack * Games - whether simple gamification updates or true realtime html5 multiplayer games * Again, awesome! But what does this matter? What are the business benefits?

Business Benefits Overview

* realtime web - it's not just a buzz term. It means the instant availability of data, and now the delivery of it. It means that data can be instantly used to build a much more engaging user experience. * 2UEs - It's what keeps users on sites and using applications. Without it your website is just a brochure. * Time & Money: * installing and maintaining realtime infrastructure is getting easier but it's still not a cinch. * The WebSockets protocol is stable but still enhancing. Pusher manages this for you. * We are a Cloud service. We scale, so you don't have to. * Realtime push-once. You publish a message once and it's instantly distributed to 1000's of connected clients. If you were having to do this yourself it would be resource intensive. Instead it costs just one REST API call. * Awesome - It just is. Cool real-time updates, instant collaboration and it all working cross device has that wow factor. Whether it's just in your own product or even better if you want to WOW your clients. Just show off the tech! * Easy - I'll show you.

Tech Example

Polling (Client)


Polling (Server) - Get the data


Polling (Server) - handle the polling

* Every polling request = a database query

Polling Demo

Polling Resource Usage


* You can scale yourself but this takes time to set up and incurs recurring costs

Let's make it realtime!

Less Code

* Faster time to market for product * Cleaner code = easier to understand

Pusher (Client)

* Ok, only a few lines difference but. Other than it being a bit cleaner there's no big difference. * the pusher object will only be created once. * the channel object may be the same.

Pusher (Server) - Get & Push

* We do see a difference on the server. * completely lose the polling PHP file/controller action * 3 lines to replace 14 * reduced complexity * realtime updates * guaranteed up to date information in the web browser

Pusher Demo

Pusher Resource Usage


* You can scale yourself but this takes time to set up and incurs recurring costs