client/README.md

70 lines
1.8 KiB
Markdown

# Meet Client (Electron)
The desktop client for the Meet application. Built with **Electron**, **React**, **TypeScript**, and **Vite**.
## Features
- **High Quality Video**: 1080p @ 30 FPS video calling.
- **Screen Sharing**: Low-latency 1080p screen sharing.
- **Chat**: Real-time text chat.
- **Protocol**: Custom UDP-based media transport for minimal latency.
## Prerequisites
- **Node.js**: v18.0.0 or higher.
- **NPM**: v9.0.0 or higher.
## Installation
1. **Clone the Repository**:
```bash
git clone <your-client-repo-url>
cd client-electron
```
2. **Install Dependencies**:
```bash
npm install
```
## Development
Start the app in development mode with Hot Module Replacement (HMR):
```bash
npm run dev
```
## Building for Production
To create a distributable installer/executable for your OS:
### Linux
```bash
npm run build:linux
```
Output: `dist/*.AppImage` (or configured target)
### Windows
```bash
npm run build:win
```
Output: `dist/*.exe`
### macOS
```bash
npm run build:mac
```
Output: `dist/*.dmg`
## Configuration
### Connection Settings
- **Server URL**: When launching the app, enter your server's domain or IP (e.g., `meet.srtk.in` or `192.168.1.8`).
- **UDP Port**: The client hardcodes the target UDP port to **4000**. Ensure your server's firewall allows inbound UDP on port 4000.
### Troubleshooting
- **Black Video**: Ensure "NAT Loopback" is enabled if testing locally with a public domain, or use the local IP.
- **Connection Drops**: Check your router's UDP flood protection / firewall settings if video freezes after a few seconds.
## Project Structure
- `src/main/`: Electron Main process (Window creation, UDP socket handling).
- `src/renderer/`: React frontend (UI, Video rendering).
- `src/preload/`: IPC bridge between Main and Renderer.