PubNub vs Socket.IO: What are the differences?
Developers describe PubNub as "Build real-time apps quickly and scale them globally". PubNub makes it easy for you to add real-time capabilities to your apps, without worrying about the infrastructure. Build apps that allow your users to engage in real-time across mobile, browser, desktop and server. On the other hand, Socket.IO is detailed as "Realtime application framework (Node.JS server)". Socket.IO enables real-time bidirectional event-based communication. It works on every platform, browser or device, focusing equally on reliability and speed.
PubNub and Socket.IO can be primarily classified as "Realtime Backend / API" tools.
Some of the features offered by PubNub are:
- Data Push - Establish and maintain persistent socket connections to any device (mobile, browser, desktop and server) and push data to global audiences in less than ¼ of a second
- Presence - Automatically detect when users enter or leave your app and whether machines are online
On the other hand, Socket.IO provides the following key features:
- Real-time analytics - Push data to clients that gets represented as real-time counters, charts or logs.
- Binary streaming - Starting in 1.0, it's possible to send any blob back and forth: image, audio, video.
- Instant messaging and chat - Socket.IO's "Hello world" is a chat app in just a few lines of code.
"Massively scalable & easy to use" is the top reason why over 31 developers like PubNub, while over 186 developers mention "Real-time" as the leading cause for choosing Socket.IO.
Socket.IO is an open source tool with 46.7K GitHub stars and 8.53K GitHub forks. Here's a link to Socket.IO's open source repository on GitHub.
According to the StackShare community, Socket.IO has a broader approval, being mentioned in 555 company stacks & 385 developers stacks; compared to PubNub, which is listed in 43 company stacks and 12 developer stacks.
What is PubNub?
What is Socket.IO?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using PubNub?
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
I recently used PubNub to implement a realtime leaderboard into my Unity game. It was easy and straight forward to get up and running. I choose Pubnub because they had a Unity SDK and an example project which showed me how to use it. I downloaded the example project and tweaked it to fit my game.
In their documentation I found good information about what I needed to know. Also, their support is very helpful when you have questions.
I used PubNub because we needed a real time server for our product. Even though we selected a fixed amount paid version, the amount they charged was incredibly high, 8x of the fixed amount. We could not understand how did they do the calculation and there is no easy way of understanding it. Regarding to the analytics they have, we spent millions of messages with few hundred active users.
Then for the second month we tried to change our architecture to decrease the messages but nothing changed. Then we wanted to get some support from them. We arranged a meeting and the person who joined the meeting didn't even have permissions to see our usage, so it was waste of time. Then they arranged another meeting WEEKS after which didn't solve anything either. As a result, we stopped using it and implemented our own simple pub-sub server.
I was building up an Alexa Skill in which user orders a meal and its notification gets to the system of the restaurant and gets displayed which was implemented using PubNub which helped me a lot in getting real time updates and notifications. I used simple publish and subscribe module to implement it which resolved a major challenge. The 5 to 6 lines of python code get my every single chain working with notifications. Thanking PubNub for this major support for solving the challenge.
I use PubNub because is simple and easy I use on Chat app this service has stable, cheap and userfriendly. The admin interface is very easy to understand and you will find a lot of tutorials and learning at their website. Pubnub comes with my highest recommendation for anyone working with apps with chat, push notifications and other realtime data.
PubNub is my goto solution for when I want to use sockets at scale. They have redundant data centers in 14 regions with 99.999% SLA allowing me to build realtime apps for any platform. Also Stephen (PubNub CTO) is Awesome!
I use Socket.IO because using HTTP requests for a real-time multiplayer game just blows! Even with websockets, I had to scrunch the data being transmitted down to a bare minimum, and do some cheap compression tricks so that I can send data in JSON format. Otherwise, I would have to resort to sending binary data. I may end up doing that anyway when the time comes that I need to scale.
How do I use it? Each client opens a socket connection at startup. The server keeps track of these connections, and sends each client the visible portion of the Playfield repeatedly. The clients render this information, while sending requests and commands to the server (join,turn,fire,thrust,bomb,viewport change,etc.) in response to the player's actions. The server uses that to make adjustments to the player's ship on the Playfield.
Where we have browser support (recent Chrome, Firefox, and Safari), we make a WebSocket connection so that the server can push changes made by other people down to browsers listening on the appropriate channels. We use a modified version* of the Socket.io client and server libraries that allows us to keep many thousands of open WebSockets on each of our servers at very little cost in terms of CPU or memory usage. So when anything happens to a board you’re watching, that action is published to our server processes and propagated to your watching browser with very minimal latency, usually well under a second.
Socket.IO has a decent community footprint, including integrations with popular JS frameworks, and has fallbacks to maintain an app's services if websockets are not available for some reason. Websockets are an important factor in most of the web-facing apps I build, to provide asynchronous two-way communication between the app and whatever server or data source it is connected to.
Another one that we're not using, yet. But have realtime data updates within our applications and the central API will be a great bit of functionality that gives our clients more control and keep them informed of changes and updates in their stores, in real time.
Using websockets is something, scaling a message pipeline to thousands of concurrent connections is something else.
I trust PubNub with what it does best, and use it as zerotoherojs.com ’s messaging pipeline.
With PubNub, I have one less problem to think about.
Socket.io is used as our current multiplayer engine. The existing engine is very simplistic and only utilizes the websocket+http fallback transports and serves as a generic world/zone/screen grouping mechanism for displaying users to each other.