Demo website where you can try the app
A full-stack WebRTC-based video conferencing application built using React, Socket.IO, Express, Mediasoup, and Redis.
- Real-time group video/audio calling using Mediasoup
- Socket.IO-based signaling for fast and reliable communication
- Redis integration to support multiple concurrent calls across rooms
- Join or create rooms using a unique roomId
- Enter a unique username for each call session
- Mute/unmute audio and video during calls
- Leave the call anytime
- Clean up of resources when a person leaves the call or ends the meeting
Frontend - React
Backend - Express, Socket.IO
Media Layer - Mediasoup
Data Store - Redis (for room/call management)
- Start the backend
cd server
npm install
npm run start - Start the frontend
cd client
npm install
npm run start
By default, the frontend runs on http://localhost:3000 and the backend on http://localhost:5001.
Make sure to run Redis locally or use a cloud Redis provider.
All usernames within a room must be unique.
- User enters a username and room ID.
- If the room ID exists, the user joins the room; otherwise, a new room is created.
- Media capabilities are negotiated using Mediasoup.
- Media streams are transmitted over WebRTC using a Send/Receive transport.
- Redis ensures that multiple rooms and users can be handled simultaneously without collisions.
- Add additional workers and implement round robin.
- UI Changes