A lightweight web application for real-time screen sharing over HTTP using WebSockets. Built with Node.js, Express, and WebRTC, it enables users to share their screen with others via a generated link without requiring additional software.
- Real-time screen sharing with video and audio support
- Browser-based, no installations needed
- Unique session IDs for secure sharing
- Dynamic copy-to-clipboard link generation
- Responsive design with light/dark mode support
- Node.js (v18.0.0 or higher)
- npm (v9.0.0 or higher)
- Modern web browser with WebRTC support (e.g., Chrome, Firefox)
-
Clone the repository:
git clone https://github.com/cu-sanjay/Screen-Stream-Over-HTTP cd Screen-Stream-Over-HTTP -
Install dependencies:
npm install
-
Start the server:
npm startThe application will run on the specified port (default: 3000).
-
Open your browser and navigate to http://localhost:3000.
-
Click "Start Screen Sharing", grant screen capture permissions, and share the generated link with viewers.
-
Viewers can access the stream by opening the link in their browser.
Run with hot reloading for development:
npm run dev
- express: Web framework for Node.js
- ws: WebSocket library for real-time communication
- uuid: Unique ID generation for sessions
Important
This project requires a WebSocket-compatible server. Static hosting (e.g., GitHub Pages) is not supported for the streaming functionality; deploy on a Node.js-compatible environment (e.g., localhost, Heroku - Not Free Anymore 🤨).
- Ensure the server port is open and accessible for WebSocket connections.
- Paths are relative (e.g.,
/stream.html) to support deployment on any domain.
Contributions are welcome. Fork the repository, make changes, and submit a pull request.
MIT License. See LICENSE file for details.


