70 lines
1.8 KiB
Markdown
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.
|