CONИ3CT is a multi video conferencing application built to provide low-latency communication that uses Selective Forwarding Unit (SFU) technology, it offers a scalable alternative to traditional Mesh WebRTC architectures.
- SFU Architecture: Efficient media routing that reduces client-side bandwidth and CPU usage.
- Real-time Video/Audio: Media streaming with synchronized state management.
- Persistent Room Logic: Join unique rooms with custom usernames and instant peer discovery.
- Dynamic UI: Responsive video grid that scales based on the number of active participants.
- Secure Authentication: Integrated Google Identity Services (GIS).
Unlike standard WebRTC where users send data to every other user (Mesh), CONИ3CT uses a Selective Forwarding Unit (SFU) powered by mediasoup.
- Signaling: A Node.js + Socket.io server handles the initial "handshake" and room logic.
- Transport Creation: When a user joins, the server creates WebRTC Transports for sending and receiving media.
- Producers & Consumers: When you join the room and getLocalMediaStream, you become a Producer. The server then creates Consumers for every other participant, forwarding your single stream to everyone else efficiently.
- State Sync: The backend tracks active producers and manages cleanup automatically when users disconnect to prevent "ghost" streams.
- Frontend: React.js,CSS
- Backend: Node.js, Express
- Real-time Signaling: Socket.io
- Media Server: Mediasoup (SFU)
- Languages: JavaScript (ES6+), C++ (via Mediasoup worker)
- Authentication: GIS Services
- Database: MongoDB
Because mediasoup compiles C++ code during installation, you must have the following installed:
- Node.js: v16 or higher.
- Python: v3.7 or higher.
- C++ Build Tools:
- Windows: Visual Studio Build Tools (Desktop development with C++).
- Mac:
xcode-select --install - Linux:
sudo apt-get install build-essential python3
- Clone the Repository
# Using SSH
git clone git@github.com:rohIta-k/connect.git
# OR using HTTPS
git clone https://github.com/rohIta-k/connect.git
cd connect- Navigate to the server directory
cd backend
3. Install Dependencies
```bash
npm install
- Create Backend Environment Variables
PORT=3001
JWT_SECRET=your_jwt_secret
FRONTEND_URL=http://localhost:5173
GOOGLE_CLIENT_ID=your_google_client_ID
SESSION_SECRET=your_session_secret
MONGO_URI=your_mongodb_connection_string- Run the Server Run the app with Node:
node server.js- Install Frontend dependencies
cd ..
npm install
- Create Frontend Environment Variable
VITE_SERVER_URL=http://localhost:3001- Run the Frontend
npm run dev