Need advice about which tool to choose?Ask the StackShare community!
Pusher vs SocketCluster: What are the differences?
Developers describe Pusher as "Hosted APIs to build realtime apps with less code". Pusher is the category leader in delightful APIs for app developers building communication and collaboration features. On the other hand, SocketCluster is detailed as "An open, scalable realtime engine for Node.js". SocketCluster is a fast, highly scalable HTTP + realtime server engine which lets you build multi-process realtime servers that make use of all CPU cores on a machine/instance. It removes the limitations of having to run your Node.js server as a single thread and makes your backend resilient by automatically recovering from worker crashes and aggregating errors into a central log.
Pusher and SocketCluster can be primarily classified as "Realtime Backend / API" tools.
Some of the features offered by Pusher are:
- Easily build scalable in-app notifications, chat, realtime graphs, geotracking and more in your web & mobile apps with our hosted pub/sub messaging API.
- Send programmable push notifications to iOS and Android devices with delivery and open rate tracking built in.
- Easily add 1-1 and group Chat to your web & mobile apps. Presence, message storage, rich media, notifications, typing indicators and more.
On the other hand, SocketCluster provides the following key features:
- Resilient on both the client and backend - Process crashes, lost connections and other failures are handled seamlessly.
- Scales linearly as you add more CPU cores and workers (assuming a decent OS) - Tested with up to 16 cores.
- Also designed to scale horizontally across multiple machines. See sc-redis sample.
"An easy way to give customers realtime features" is the top reason why over 44 developers like Pusher, while over 8 developers mention "Cluster mode is awesome" as the leading cause for choosing SocketCluster.
SocketCluster is an open source tool with 5.35K GitHub stars and 283 GitHub forks. Here's a link to SocketCluster's open source repository on GitHub.
Product Hunt, Groupon, and Mailchimp are some of the popular companies that use Pusher, whereas SocketCluster is used by notthatbad technologies UG, Livevents, and StaffConnect. Pusher has a broader approval, being mentioned in 125 company stacks & 42 developers stacks; compared to SocketCluster, which is listed in 6 company stacks and 3 developer stacks.
I am building an IoT application that will utilize connected air quality sensors to provide real-time indoor air quality in offices. I want to be able to share this data with a few different databases, etc.
Wondering if anyone has any advice on which real-time streaming API would be best for this sort of application, or even how I should think about it?
For IoT, we support MQTT along with websockets and SSE. The pattern you're suggesting that involves harvesting data from devices and soaking into a database is easy to achieve with one of the Ably integrations (Serverless functions/webhook) . Here are some tutorials to do things like this: https://ably.com/tutorials/reactor-event-zapier#step2-mqtt-ably
We use Pusher at www.justlearn.com. It works fine. When you reach more users, Pusher gets expensive. We use Pusher for live chat between users. Their software is easy to use. We have had issues with auth on Pusher.
Pros of Pusher
- An easy way to give customers realtime features55
- Websockets40
- Simple34
- Easy to get started with27
- Free plan25
- Heroku Add-on12
- Easy and fast to configure and to understand11
- JSON9
- Happy6
- Azure Add-on6
- Support5
- Push notification4
Pros of SocketCluster
- Cluster mode is awesome12
- WebSockets8
- Scalability7
- Security4
- Real-time4
- JWT based Authentication4
- Pub-Sub API3
- Open source3
- Client Libraries2
Sign up to add or upvote prosMake informed product decisions
Cons of Pusher
- Costly11