Pusher seeks to make the task of developing real time applications simpler. By focusing on the core functionality of real time coordination, Pusher lets developers forego dealing with timers and polling for server side changes. The Pusher API allows developers to skip ahead to the good stuff: Implementing their unique idea.
Real time coordination is more challenging that you might guess. Pusher’s CEO Max Williams warns that “opting for home-rolled realtime solutions can bring up issues that are very different from those of ‘traditional’ web development.” Yes, by working with Pusher you would essentially be outsourcing real-time communication between your server and clients. In some ways this is a risk, but Williams doesn’t see it that way. “We de-risk projects by providing a managed service,” Williams said. In other words, he’s confident that Pusher would do an awesome job of it. “Developers who take this path aren’t necessarily experts when it comes to managing and scaling this infrastructure. We have specialized in this area.”
Pusher has its own nomenclature following a PubSub model. First there are connections. Connections to the Pusher server are based on application keys. The keys segregate one application’s messaging from another. Channels are created over connections and exist within applications. Clients connect to one or many channels with each channel focusing on a specific topic or subject. To put it another way, Channels are the method of filtering information. Clients implement handlers that respond to the events which occur on channels. Clients can also initiate events on a channel, but they are first validated by the server. In a worked example, an application for tracking stocks could have a channel for each stock, and each channel could provide a “new price” event, which would be handled by the client.
Pusher is platform agnostic and ready to work with whichever environment you’re coding in. It provides more than 14 libraries when you take the client and server sides together. You’ll find NodeJs, Ruby, PHP, and Python implementations to make you feel at home. Another great feature is the Pusher debugging panel, which gives you color coded insight into the messages that Pusher is receiving from your application. When you choose Pusher, you’re getting a lot more than just a development framework. You’re getting a full fledged service with management, scalability, and support.