This is a web-based Omegle clone where two individuals can connect via video calls. It was developed as part of my second-year internship to explore and implement WebRTC. The main objective of the project was to understand peer-to-peer (P2P) connections and real-time communication in browsers.
At a high level:
The browser initially uses a central server to exchange offer and answer objects.
After the WebRTC handshake is complete, browsers communicate directly without the server acting as a middleman.
Even if the server goes down, the peer-to-peer connection remains intact.
💻 Software Stack
Layer
Technologies
Frontend
React, socket.io-client
Backend
Node.js, Express, CORS, socket.io
Protocol
WebRTC
🛡️ Why this stack?
WebRTC was chosen because it provides real-time peer-to-peer video/audio communication natively in browsers.
React helped rapidly build the UI in a component-driven way.
Socket.IO was used for the signaling server to exchange connection metadata (offer/answer, ICE candidates).
Express + Node.js was used to quickly build a minimal server for handling signaling events.
CORS enabled cross-origin requests between client and deployed backend.
🛠️ Installation & Usage
To run the app locally, follow these steps:
# Clone the repositorygit clone git@github.com:HISHAN03/Omegle.gitcd Omegle