Alternatives to Socket.IO logo

Alternatives to Socket.IO

SignalR, SocketCluster, PubNub, Pusher, and ExpressJS are the most popular alternatives and competitors to Socket.IO.
13K
10.7K
+ 1
776

What is Socket.IO and what are its top alternatives?

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

Top Alternatives to Socket.IO

  • SignalR
    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

    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

    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

    Pusher is the category leader in delightful APIs for app developers building communication and collaboration features. ...

  • ExpressJS
    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. ...

  • Firebase
    Firebase

    Firebase is a cloud service designed to power real-time, collaborative applications. Simply add the Firebase library to your application to gain access to a shared data structure; any changes you make to that data are automatically synchronized with the Firebase cloud and with other clients within milliseconds. ...

  • Croquet
    Croquet

    It is a platform that makes it easy to create high performance, Live Collaboration applications. Build interactive multiplayer experiences into your web apps and games. ...

  • ws
    ws

    It is a simple to use, blazing fast, and thoroughly tested WebSocket client and server implementation. ...

Socket.IO alternatives & related posts

SignalR logo

SignalR

490
1.2K
146
A new library for ASP.NET developers that makes developing real-time web functionality easy.
490
1.2K
+ 1
146
PROS OF SIGNALR
  • 32
    Supports .NET server
  • 25
    Real-time
  • 18
    Free
  • 16
    Fallback to SSE, forever frame, long polling
  • 15
    WebSockets
  • 10
    Simple
  • 9
    Open source
  • 8
    Ease of use
  • 8
    JSON
  • 5
    Cool
  • 0
    Azure
CONS OF SIGNALR
  • 2
    Expertise hard to get
  • 2
    Requires jQuery
  • 1
    Weak iOS and Android support
  • 1
    Big differences between ASP.NET and Core versions

related SignalR posts

Shared insights
on
SignalRSignalRMSSQLMSSQLAngularJSAngularJS.NET.NET

I'm working on a project where I need to both send real-time updates for specific data sets, along with providing notifications to the users after long-running processes have been completed (SSE).

The project is using .NET Framework, AngularJS, & MSSQL. I understand that SignalR is nice as a polyfill for .NET and you can scale with a backplane, but I was wondering if there was a more efficient/effective technology for this?

See more

Hi everyone! I am trying to implement a chat module in my product but it is not stable. My backend is in ASP.NET Core with EF Core, and my frontend is in Angular. Since I am already using dotnet, I used SignalR as a socket connection provider. At the moment, it works when the user logs in, the chats are loaded and the user is notified if there is any unread message just like any other app does by displaying a badge and number of unread chats. When the user navigates to chat, it loads the messages of chat. To avoid user waiting for messages I have stored the messages locally in a state management store and when the user switches the chat, it first loads messages from the store and then sends a request to server if there is any other message that is not on local.

The problem starts with multiple connections when single account is connected from multiple clients/browsers. From backend, I check if user is connected to SignalR socket then I send the message to all connections of user it does not work properly, this part is highly unstable. secondly, How can I improve the response of message loading? I only load 25 messages at the start.

Is there any article describing how Slack, Google Chat or MS Teams is handling the browser chat? it would be of great help.

Thanks

See more
SocketCluster logo

SocketCluster

47
168
47
An open, scalable realtime engine for Node.js
47
168
+ 1
47
PROS OF SOCKETCLUSTER
  • 12
    Cluster mode is awesome
  • 8
    WebSockets
  • 7
    Scalability
  • 4
    Security
  • 4
    Real-time
  • 4
    JWT based Authentication
  • 3
    Pub-Sub API
  • 3
    Open source
  • 2
    Client Libraries
CONS OF SOCKETCLUSTER
    Be the first to leave a con

    related SocketCluster posts

    PubNub logo

    PubNub

    236
    456
    238
    Build real-time apps quickly and scale them globally.
    236
    456
    + 1
    238
    PROS OF PUBNUB
    • 36
      Massively scalable & easy to use
    • 25
      Easy setup
    • 20
      Reliable
    • 19
      Great support
    • 14
      Flexible to integrate to custom applications
    • 13
      Sockets at Scale
    • 13
      99.999% availability guarantees
    • 13
      High-Performance
    • 12
      High-Reliability
    • 12
      Multiplexing
    • 7
      Scalability
    • 5
      High-Availability
    • 5
      70+ SDKs
    • 4
      Security
    • 4
      Azure Add-on
    • 3
      Heroku Add-on
    • 3
      Presence
    • 3
      Flexible
    • 3
      Easy to setup
    • 2
      Data Streams
    • 2
      Free Plan
    • 2
      Server-Side Cache
    • 2
      PhoneGap Plugin
    • 2
      AngularJS Adapter
    • 2
      Data Sync
    • 2
      Analytics
    • 2
      Support
    • 1
      Easy setup and very reliable
    • 1
      High cost, going up more in Summer '15
    • 1
      Cool
    • 1
      Angular 2+ integration
    • 1
      Documentation, easy to use, great people/service
    • 1
      CTO stephen also is A++++++
    • 1
      Real time and easy to use.
    • 1
      Easy integration with iOS apps
    CONS OF PUBNUB
    • 1
      Costly

    related PubNub posts

    I love Python and JavaScript . You can do the same JavaScript async operations in Python by using asyncio. This is particularly useful when you need to do socket programming in Python. With streaming sockets, data can be sent or received at any time. In case your Python program is in the middle of executing some code, other threads can handle the new socket data. Libraries like asyncio implement multiple threads, so your Python program can work in an asynchronous fashion. PubNub makes bi-directional data streaming between devices even easier.

    See more

    Vue.js vuex Quasar Framework PubNub Apache Cordova Spring Boot We built our phone app using apache cordova since it has plugins for all native mobile functionality that we needed , and it saved us time rather than maintaining separate native swift and android codebase. We used an upcoming framework called quasar that helped us bootstrap our cordova project in vue js , and also has a ton of built in vue components. In order to push data to our phone on the fly , we used pubnub. It was super easy to add in a few lines to code to do this. We would save data on the server , and use pubnub to communicate updates to all the clients. Another nifty feature offered by pubnub that we used was mobile notifications delivery. : you send data to pubnub who inturn forward it to apns or firebase depending on the payload. On the server side we used plain old spring boot application , and configured cross domain communication to allow requests from ://file domain. ( Corodva app is a bunch of web html files packaged as app ).

    We also heavily used cordova plugins to talk to phone , eg. cordova-plugin-calendar and cordova-plugin-local-notification : The second one was used to generate notifications from within the app , when the app is already open but you are in a different screen and want user to be notified . If the app is not open native push notifications delivered through apns / firebase would show.

    I am pretty happy with out decision . other than the fact that quasar framework got recently upgraded to v1 and some of the newer components that replace the older ones do not maintain the same look and feel , an example of that is linked below.

    See more
    Pusher logo

    Pusher

    601
    1.4K
    234
    Hosted APIs to build realtime apps with less code
    601
    1.4K
    + 1
    234
    PROS OF PUSHER
    • 55
      An easy way to give customers realtime features
    • 40
      Websockets
    • 34
      Simple
    • 27
      Easy to get started with
    • 25
      Free plan
    • 12
      Heroku Add-on
    • 11
      Easy and fast to configure and to understand
    • 9
      JSON
    • 6
      Happy
    • 6
      Azure Add-on
    • 5
      Support
    • 4
      Push notification
    CONS OF PUSHER
    • 11
      Costly

    related Pusher posts

    Which messaging service (Pusher vs. PubNub vs. Google Cloud Pub/Sub) to use for IoT?

    See more
    Kirill Shirinkin
    Cloud and DevOps Consultant at mkdev · | 3 upvotes · 472.2K views
    Shared insights
    on
    MattermostMattermostPusherPusherTwilioTwilio
    at

    Recently we finished long research on chat tool for our students and mentors. In the end we picked Mattermost Team Edition as the cheapest and most feature complete option. We did consider building everything from scratch and use something like Pusher or Twilio on a backend, but then we would have to implement all the desktop and mobile clients and all the features oursevles. Mattermost gave us flexible API, lots of built in or easy to install integrations and future-proof feature set. We are still integrating it with our main platform but so far the team, existing mentors and students are very happy.

    See more
    ExpressJS logo

    ExpressJS

    31.5K
    23.4K
    1.6K
    Sinatra inspired web development framework for node.js -- insanely fast, flexible, and simple
    31.5K
    23.4K
    + 1
    1.6K
    PROS OF EXPRESSJS
    • 380
      Simple
    • 336
      Node.js
    • 244
      Javascript
    • 193
      High performance
    • 152
      Robust routing
    • 73
      Middlewares
    • 71
      Open source
    • 59
      Great community
    • 37
      Hybrid web applications
    • 16
      Well documented
    • 9
      Rapid development
    • 9
      Sinatra inspired
    • 7
      Socket connection
    • 7
      Isomorphic js.. superfast and easy
    • 5
      Light weight
    • 4
      Resource available for learning
    • 4
      Npm
    • 3
      Event loop
    • 3
      Callbacks
    • 2
      Data stream
    CONS OF EXPRESSJS
    • 27
      Not python
    • 17
      Overrated
    • 14
      No multithreading
    • 9
      Javascript
    • 5
      Not fast
    • 3
      Easily Insecure for Novices

    related ExpressJS posts

    Simon Reymann
    Senior Fullstack Developer at QUANTUSflow Software GmbH · | 27 upvotes · 4.8M views

    Our whole Node.js backend stack consists of the following tools:

    • Lerna as a tool for multi package and multi repository management
    • npm as package manager
    • NestJS as Node.js framework
    • TypeScript as programming language
    • ExpressJS as web server
    • Swagger UI for visualizing and interacting with the API’s resources
    • Postman as a tool for API development
    • TypeORM as object relational mapping layer
    • JSON Web Token for access token management

    The main reason we have chosen Node.js over PHP is related to the following artifacts:

    • Made for the web and widely in use: Node.js is a software platform for developing server-side network services. Well-known projects that rely on Node.js include the blogging software Ghost, the project management tool Trello and the operating system WebOS. Node.js requires the JavaScript runtime environment V8, which was specially developed by Google for the popular Chrome browser. This guarantees a very resource-saving architecture, which qualifies Node.js especially for the operation of a web server. Ryan Dahl, the developer of Node.js, released the first stable version on May 27, 2009. He developed Node.js out of dissatisfaction with the possibilities that JavaScript offered at the time. The basic functionality of Node.js has been mapped with JavaScript since the first version, which can be expanded with a large number of different modules. The current package managers (npm or Yarn) for Node.js know more than 1,000,000 of these modules.
    • Fast server-side solutions: Node.js adopts the JavaScript "event-loop" to create non-blocking I/O applications that conveniently serve simultaneous events. With the standard available asynchronous processing within JavaScript/TypeScript, highly scalable, server-side solutions can be realized. The efficient use of the CPU and the RAM is maximized and more simultaneous requests can be processed than with conventional multi-thread servers.
    • A language along the entire stack: Widely used frameworks such as React or AngularJS or Vue.js, which we prefer, are written in JavaScript/TypeScript. If Node.js is now used on the server side, you can use all the advantages of a uniform script language throughout the entire application development. The same language in the back- and frontend simplifies the maintenance of the application and also the coordination within the development team.
    • Flexibility: Node.js sets very few strict dependencies, rules and guidelines and thus grants a high degree of flexibility in application development. There are no strict conventions so that the appropriate architecture, design structures, modules and features can be freely selected for the development.
    See more

    Repost

    Overview: To put it simply, we plan to use the MERN stack to build our web application. MongoDB will be used as our primary database. We will use ExpressJS alongside Node.js to set up our API endpoints. Additionally, we plan to use React to build our SPA on the client side and use Redis on the server side as our primary caching solution. Initially, while working on the project, we plan to deploy our server and client both on Heroku . However, Heroku is very limited and we will need the benefits of an Infrastructure as a Service so we will use Amazon EC2 to later deploy our final version of the application.

    Serverside: nodemon will allow us to automatically restart a running instance of our node app when files changes take place. We decided to use MongoDB because it is a non relational database which uses the Document Object Model. This allows a lot of flexibility as compared to a RDMS like SQL which requires a very structural model of data that does not change too much. Another strength of MongoDB is its ease in scalability. We will use Mongoose along side MongoDB to model our application data. Additionally, we will host our MongoDB cluster remotely on MongoDB Atlas. Bcrypt will be used to encrypt user passwords that will be stored in the DB. This is to avoid the risks of storing plain text passwords. Moreover, we will use Cloudinary to store images uploaded by the user. We will also use the Twilio SendGrid API to enable automated emails sent by our application. To protect private API endpoints, we will use JSON Web Token and Passport. Also, PayPal will be used as a payment gateway to accept payments from users.

    Client Side: As mentioned earlier, we will use React to build our SPA. React uses a virtual DOM which is very efficient in rendering a page. Also React will allow us to reuse components. Furthermore, it is very popular and there is a large community that uses React so it can be helpful if we run into issues. We also plan to make a cross platform mobile application later and using React will allow us to reuse a lot of our code with React Native. Redux will be used to manage state. Redux works great with React and will help us manage a global state in the app and avoid the complications of each component having its own state. Additionally, we will use Bootstrap components and custom CSS to style our app.

    Other: Git will be used for version control. During the later stages of our project, we will use Google Analytics to collect useful data regarding user interactions. Moreover, Slack will be our primary communication tool. Also, we will use Visual Studio Code as our primary code editor because it is very light weight and has a wide variety of extensions that will boost productivity. Postman will be used to interact with and debug our API endpoints.

    See more
    Firebase logo

    Firebase

    40.3K
    34.6K
    2K
    The Realtime App Platform
    40.3K
    34.6K
    + 1
    2K
    PROS OF FIREBASE
    • 371
      Realtime backend made easy
    • 270
      Fast and responsive
    • 242
      Easy setup
    • 215
      Real-time
    • 191
      JSON
    • 134
      Free
    • 128
      Backed by google
    • 83
      Angular adaptor
    • 68
      Reliable
    • 36
      Great customer support
    • 32
      Great documentation
    • 25
      Real-time synchronization
    • 21
      Mobile friendly
    • 18
      Rapid prototyping
    • 14
      Great security
    • 12
      Automatic scaling
    • 11
      Freakingly awesome
    • 8
      Chat
    • 8
      Angularfire is an amazing addition!
    • 8
      Super fast development
    • 6
      Built in user auth/oauth
    • 6
      Firebase hosting
    • 6
      Ios adaptor
    • 6
      Awesome next-gen backend
    • 4
      Speed of light
    • 4
      Very easy to use
    • 3
      Great
    • 3
      It's made development super fast
    • 3
      Brilliant for startups
    • 2
      Free hosting
    • 2
      Cloud functions
    • 2
      JS Offline and Sync suport
    • 2
      Low battery consumption
    • 2
      .net
    • 2
      The concurrent updates create a great experience
    • 2
      Push notification
    • 2
      I can quickly create static web apps with no backend
    • 2
      Great all-round functionality
    • 2
      Free authentication solution
    • 1
      Easy Reactjs integration
    • 1
      Google's support
    • 1
      Free SSL
    • 1
      CDN & cache out of the box
    • 1
      Easy to use
    • 1
      Large
    • 1
      Faster workflow
    • 1
      Serverless
    • 1
      Good Free Limits
    • 1
      Simple and easy
    CONS OF FIREBASE
    • 31
      Can become expensive
    • 16
      No open source, you depend on external company
    • 15
      Scalability is not infinite
    • 9
      Not Flexible Enough
    • 7
      Cant filter queries
    • 3
      Very unstable server
    • 3
      No Relational Data
    • 2
      Too many errors
    • 2
      No offline sync

    related Firebase posts

    Johnny Bell

    I was building a personal project that I needed to store items in a real time database. I am more comfortable with my Frontend skills than my backend so I didn't want to spend time building out anything in Ruby or Go.

    I stumbled on Firebase by #Google, and it was really all I needed. It had realtime data, an area for storing file uploads and best of all for the amount of data I needed it was free!

    I built out my application using tools I was familiar with, React for the framework, Redux.js to manage my state across components, and styled-components for the styling.

    Now as this was a project I was just working on in my free time for fun I didn't really want to pay for hosting. I did some research and I found Netlify. I had actually seen them at #ReactRally the year before and deployed a Gatsby site to Netlify already.

    Netlify was very easy to setup and link to my GitHub account you select a repo and pretty much with very little configuration you have a live site that will deploy every time you push to master.

    With the selection of these tools I was able to build out my application, connect it to a realtime database, and deploy to a live environment all with $0 spent.

    If you're looking to build out a small app I suggest giving these tools a go as you can get your idea out into the real world for absolutely no cost.

    See more
    Collins Ogbuzuru
    Front-end dev at Evolve credit · | 19 upvotes · 16.6K views

    Your tech stack is solid for building a real-time messaging project.

    React and React Native are excellent choices for the frontend, especially if you want to have both web and mobile versions of your application share code.

    ExpressJS is an unopinionated framework that affords you the flexibility to use it's features at your term, which is a good start. However, I would recommend you explore Sails.js as well. Sails.js is built on top of Express.js and it provides additional features out of the box, especially the Websocket integration that your project requires.

    Don't forget to set up Graphql codegen, this would improve your dev experience (Add Typescript, if you can too).

    I don't know much about databases but you might want to consider using NO-SQL. I used Firebase real-time db and aws dynamo db on a few of my personal projects and I love they're easy to work with and offer more flexibility for a chat application.

    See more
    Croquet logo

    Croquet

    2
    10
    4
    Next Generation Live Collaboration Technology
    2
    10
    + 1
    4
    PROS OF CROQUET
    • 1
      Client side code
    • 1
      Simple to program
    • 1
      Low latency
    • 1
      Real-time
    CONS OF CROQUET
      Be the first to leave a con

      related Croquet posts

      ws logo

      ws

      897
      189
      0
      A Node.js WebSocket library
      897
      189
      + 1
      0
      PROS OF WS
        Be the first to leave a pro
        CONS OF WS
          Be the first to leave a con

          related ws posts