Socket.IO logo

Socket.IO

Realtime application framework (Node.JS server)
12.9K
10.6K
+ 1
784

What is Socket.IO?

It enables real-time bidirectional event-based communication. It works on every platform, browser or device, focusing equally on reliability and speed.
Socket.IO is a tool in the Realtime Backend / API category of a tech stack.
Socket.IO is an open source tool with GitHub stars and GitHub forks. Here’s a link to Socket.IO's open source repository on GitHub

Who uses Socket.IO?

Companies
1473 companies reportedly use Socket.IO in their tech stacks, including Tech Stack, Alibaba Travels, and Patreon.

Developers
10812 developers on StackShare have stated that they use Socket.IO.

Socket.IO Integrations

React, Flutter, Backbone.js, Angular, and Gatsby are some of the popular tools that integrate with Socket.IO. Here's a list of all 13 tools that integrate with Socket.IO.
Pros of Socket.IO
219
Real-time
142
Node.js
141
Event-based communication
102
Open source
102
WebSockets
26
Binary streaming
21
No internet dependency
10
Large community
9
Fallback to polling if WebSockets not supported
6
Push notification
5
Ease of access and setup
1
Test
Decisions about Socket.IO

Here are some stack decisions, common use cases and reviews by companies and developers who chose Socket.IO in their tech stack.

dagim debebe
Needs advice
on
ExpressJSExpressJSReactReact
and
React NativeReact Native

Hi,

I am a student and a junior developer who is a graduating candidate in comp sci major. I am about to start building my final year project which is a real-time messaging application for software developers to Enhance Knowledge Exchange and Problem Solving. It is mainly a chat application with more enhanced features. I am planning to use React and React Native for the frontend and cross-platform mobile apps, Node.js and ExpressJS for the backend, GraphQL for fetching and manipulating data from the backend and PostgreSQL for the database, and finally Socket.IO for the real-time chatting and communication. I would highly appreciate it if anyone here with experience in building similar apps to tell me if I made a good choice or suggest better tech stacks.

Thanks in advance.

See more
Moghammad Sabre Khan
Needs advice
on
FirebaseFirebase
and
Socket.IOSocket.IO

We (my team) are building an App where we want to have Bi-directional texting, Single Directional Picture, and audio transfer.

We are building all this using Flutter.

There will essentially be 3 apps, 2 Mobile-based (Android and iOS) and 1 Microsoft Based. We've built up most of the code already, and made a few major mistakes but fixed it(namely had no proper state management).

How things will work:

Person A has a Mobile app 1, Person A presses a button that sends a "communication request" into a Pool of requests. Person B on Desktop App chooses a "communication request" from the pool, and engages in Bi-directional texting with Person A. Person B also opens communication with Person C who is on Mobile app 2, and they engage in Bi-directional texting. Person C will be notified of communication requests through Push Notifications.

So far we've been using Socket.IO, however, I'm starting to think that's not the best.

A problem we've encountered so far is that Person A(Mobile App 1 User), is the person who sends a "communication request" into the "Communication Pool". The Mobile App 1 User, can "cancel" the communication at any point in time. When they do that, I would like for a notification to be sent to Person B, the Desktop User, For them to pick up another communication request.

I am not sure how this should be done however, should it be done in the Back-end, then how does the Front-end get notified of the change?

Any advice on which to choose?

See more
Needs advice
on
Next.jsNext.jsPusherPusher
and
Socket.IOSocket.IO

My web app will use redisJSON and/or MongoDB. I need my app to have real-time functions. I don't want to run my Next.js app with a dev server on the node. I want to use vercel's hosting with static side generation only. Do I use pusher or Socket.IO? Or maybe some tool I don't know about.

See more
Bruno Diaz
Needs advice
on
DockerDockerMongoDBMongoDB
and
Socket.IOSocket.IO

Hello guys, my team is looking for some stack pre-build to implement a real-time chat. Meanwhile, we had built a little infrastructure with Node.js, PHP/JavaScript, and Socket.IO, and it works fine, but we want to evolve. Thanks!

See more
Needs advice
on
PubNubPubNub
and
Socket.IOSocket.IO

I am trying to replace Socket.IO with PubNub. Provide the way to do it.

See more
Needs advice
on
ApolloApolloFirebaseFirebase
and
Socket.IOSocket.IO

We are starting to work on a web-based platform aiming to connect artists (clients) and professional freelancers (service providers). In-app, timeline-based, real-time communication between users (& storing it), file transfers, and push notifications are essential core features. We are considering using Node.js, ExpressJS, React, MongoDB stack with Socket.IO & Apollo, or maybe using Real-Time Database and functionalities of Firebase.

See more

Blog Posts

Socket.IO's 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.
  • Document collaboration - Allow users to concurrently edit a document and see each other's changes.

Socket.IO Alternatives & Comparisons

What are some alternatives to Socket.IO?
SignalR
SignalR allows bi-directional communication between server and client. Servers can now push content to connected clients instantly as it becomes available. SignalR supports Web Sockets, and falls back to other compatible techniques for older browsers. SignalR includes APIs for connection management (for instance, connect and disconnect events), grouping connections, and authorization.
SocketCluster
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.
PubNub
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.
Pusher
Pusher is the category leader in delightful APIs for app developers building communication and collaboration features.
ExpressJS
Express is a minimal and flexible node.js web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications.
See all alternatives

Socket.IO's Followers
10616 developers follow Socket.IO to keep up with related blogs and decisions.