Socket.IO

Socket.IO

Application and Data / Application Hosting / Realtime Backend / API
Avatar of dagi19deb
web developer ·
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.

READ MORE
27 upvotes·118.7K views
Replies (3)
Avatar of Ifunanyacollins
Front-end dev at Evolve credit·

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.

READ MORE
47 upvotes·8 comments·339.4K views
suwaidi online
suwaidi online
·
July 17th 2024 at 7:30AM

Recommended technology stacks for building a messaging app include programming languages like Java, Python, Swift, or Kotlin, and frameworks like React Native, Flutter, or Ionic

·
Reply
David James
David James
·
July 29th 2024 at 11:40AM

https://theyesnobutton.com/online-yes-no-button/

·
Reply
cafe racer motorcycle jacket
cafe racer motorcycle jacket
·
July 31st 2024 at 7:32AM

k

·
Reply
sunil Joshi
sunil Joshi
·
October 26th 2024 at 5:38PM

trying since 4 months to retrive my companies stackpage still got issue

·
Reply
Loverboy hats
Loverboy hats
·
January 6th 2025 at 3:46PM

Get the ultimate warmth and style with our Charles Jeffrey Loverboy beanie Discover the perfect color and design for you Enjoy Fast Shipping Worldwide

https://loverboyhats.com/beanie/

·
Reply

I built a very similar application with real-time chatting, and I used a very similar stack to yours (MySQL instead of Postgre). The stack that you chose is very good for what you want to make (or have already made since I am 2 weeks late).

16 upvotes·2 comments·29.9K views
suwaidi online
suwaidi online
·
November 27th 2024 at 7:31AM

MVP for testing and customer feedback, then a simple tech stack like WordPress would do the work.

·
Reply
Adornand admire
Adornand admire
·
June 17th 2024 at 11:20AM

openings out there because there's just more web dev to be done then app development.

·
Reply
View all (3)
Avatar of alphacruze
Team Lead at Alert 21·
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?

READ MORE
4 upvotes·170.5K views
Replies (1)
Avatar of mrjomaiomar
web developer at tunisofts·
Recommends
on
Firebase
Firebase
Socket.IO
Socket.IO

It's so simple when you use Firebase to manage the requests just make new field to the request for example callstate with values like "requesting" "incall" "cancelled" and both A and B can update this field.

3 upvotes·18.2K views
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.

3 upvotes·159.9K views
Replies (4)
Avatar of ugbot
Product Champion ·
Recommends
on
Ably
Ably
at

Key thing to understand here is that you are hosting data & logic somewhere. Socket.IO requires you to host and manage a dev server somewhere (as the previous suggestion mentioned Heroku is a good choice)

However, It's not really in keeping with the serverless world that Vercel provides and its a headache to scale and manage. We (I work at Ably) have a bunch of open source examples of how all this works. Ably provides serverless N to N connectivity, along with first class integrations into serverless functions on AWS, Azure, cloudflare and GCP. This allows you to build a realtime, serverless system that you can scale without any pre provisioning.

Nothing is totally free but you can get away with the free tiers on all of these services for a lot longer than you may think.

READ MORE
Building a realtime chat app with Next.js and Vercel | Ably Blog: Data in Motion (ably.com)
5 upvotes·2.2K views
Recommends
on
Pusher
Pusher
Socket.IO
Socket.IO

It really depends on how you want to do it. If you use Socket.IO, you do have to have your own server running somewhere else, a good free one is Heroku. Pusher is nice if you know what you are trying to do, know your limits, and how to do it. While Socket.IO allows more flexibility if you need to do something crazy, Pusher is great if you're just doing standard real-time data transfer because there is minimal setup. The only other thing about Pusher is that it is not entirely free, so if you know the pricing, know how much you are going to use, and are willing, you could easily use Pusher.

READ MORE
3 upvotes·227 views
View all (4)
Avatar of bdiazc90
CEO at Guvery·
Needs advice
on
DockerDockerMongoDBMongoDB
and
Socket.IOSocket.IO
in

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!

3 upvotes·164.6K views
Replies (1)

Hi Bruno, We are a startup providing Socket.io in cloud. Its very easy to use and takes away all complexities of socket.io at scale. Provides out of the box socket features. Please do let me know if you need any further information.

1 upvote·212 views
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.

READ MORE
9 upvotes·1.1M views
Replies (3)
Avatar of timmalstead7117
Junior Full Stack Developer at Freelance·
Recommends
on
Firebase
Firebase

I would recommend looking hard into Firebase for this project, especially if you do not have dedicated full-stack or backend members on your team.

The real time database, as you mentioned, is a great option, but I would also look into Firestore. Similar to RTDB, it adds more functions and some cool methods as well. Also, another great thing about Firebase is you have easy access to storage and dead simple auth as well.

Node.js Express MongoDB Socket.IO and Apollo are great technologies as well, and may be the better option if you do not wish to cede as much control to third parties in your application.

Overall, I say if you wish to focus more time developing your React application instead of other parts of your stack, Firebase is a great way to do that.

READ MORE
7 upvotes·2 comments·494.9K views
Ajay M
Ajay M
·
July 21st 2020 at 8:53PM

I totally agree with you.

The only issue is most features of firebase are paid (and from my perspective costly) which could be a concern when the app grows and they might need to migrate which would be a lot of work.

But if it's only a prototyping then it's all good.

·
Reply
Timothy Malstead
Timothy Malstead
·
July 21st 2020 at 10:07PM

I hear you. I honestly haven't looked into hosting costs of Firebase vs Express/Mongo much.

·
Reply
View all (3)
Needs advice
on
Amazon ChimeAmazon Chime
and
WebRTCWebRTC

Hello. So, I wanted to make a decision on whether to use WebRTC or Amazon Chime for a conference call (meeting). My plan is to build an app with features like video broadcasting, and the ability for all the participants to talk and chat. I have used Agora's web SDK for video broadcasting, and Socket.IO for chat features. As I read the comparison between Amazon Chime and WebRTC, it further intrigues me on what I should use given my scenario? Is there any way that so many related technologies could be a hindrance to the other? Any advice would be appreciated. Thanks. Ritwik Neema

READ MORE
7 upvotes·459.5K views
Replies (1)
Avatar of TbreezyF
Software Developer at Sproft Media Inc·
Recommends
on
Amazon Chime
Amazon Chime

I would recommend Amazon Chime. If I were you, I would eventually look into working with WebRTC as it is very interesting and teaches you a lot. I dove deep into webRTC recently building a webinar broadcasting application (one-to-many) and I can say it is difficult to understand how things actually work and to get it stable. I mean you can vaguely read up on it and get some things to work by copying code on StackOverflow or using a library but that wouldn't teach you much.

In short, go with Chime because it is easy to get started especially if you have a time constraint. But look into webRTC in the future as it enables you to build your own "Chime". Hope this helped!

READ MORE
4 upvotes·2 comments·55.7K views
Ritwik Neema
Ritwik Neema
·
May 30th 2020 at 3:29AM

It definitely helped. I will look into WebRTC as well. Cheers.

·
Reply
rijul jain
rijul jain
·
October 9th 2021 at 8:27AM

Good advice!

·
Reply