60 lines
2.1 KiB
Markdown
60 lines
2.1 KiB
Markdown
# PrivyDrop - 后端
|
|
|
|
这是 PrivyDrop 的后端服务器。它使用 Node.js、Express 和 Socket.IO 构建,负责处理 WebRTC 连接的信令、房间管理和来自前端的 API 请求。
|
|
|
|
## ✨ 功能特性
|
|
|
|
- **WebRTC 信令:** 使用 Socket.IO 交换 SDP 和 ICE candidates。
|
|
- **房间管理:** 使用 Redis 高效地创建和管理临时文件共享房间。
|
|
- **轻量级 API:** 提供核心的 HTTP 接口供前端交互。
|
|
- **临时数据存储:** 所有房间数据在 Redis 中都有自动过期时间。
|
|
|
|
## 🛠️ 技术栈
|
|
|
|
- **运行时**: Node.js
|
|
- **框架**: Express.js
|
|
- **语言**: TypeScript
|
|
- **实时通信**: Socket.IO
|
|
- **数据库**: Redis (使用 ioredis 客户端)
|
|
- **进程管理**: PM2
|
|
|
|
## 🚀 入门 (本地开发)
|
|
|
|
1. **先决条件**
|
|
|
|
- Node.js (v18.x 或更高版本)
|
|
- 一个正在运行的 Redis 实例
|
|
|
|
2. **进入目录并安装依赖**
|
|
|
|
```bash
|
|
cd backend
|
|
npm install
|
|
```
|
|
|
|
3. **配置环境变量**
|
|
首先,从模板文件复制一份开发环境变量配置:
|
|
```bash
|
|
cp .env_development_example .env.development
|
|
```
|
|
然后,打开并编辑 `.env.development` 文件,根据你的本地 Redis 和前端配置进行调整。
|
|
|
|
4. **运行开发服务器**
|
|
```bash
|
|
npm run dev
|
|
```
|
|
服务器将在 `BACKEND_PORT` 环境变量指定的端口上启动(默认为 3001)。
|
|
|
|
## 📖 API 与事件摘要
|
|
|
|
本服务提供了一系列 API 端点和 Socket.IO 事件来支持前端功能。
|
|
|
|
- **API 端点**: 主要包括房间创建 (`/api/get_room`)、加入和检查等。
|
|
- **Socket.IO 事件**: 负责处理客户端加入房间 (`join`) 以及 WebRTC 信令的转发 (`offer`, `answer`, `ice-candidate`)。
|
|
|
|
## 📚 详细文档
|
|
|
|
- 要深入理解后端的代码结构、模块设计和 Redis 数据模型,请阅读 [**后端架构详解**](../docs/BACKEND_ARCHITECTURE.zh-CN.md)。
|
|
- 要了解项目前后端的整体协作方式,请参阅 [**项目整体架构**](../docs/ARCHITECTURE.zh-CN.md)。
|
|
- 有关生产环境的部署方法,请参考 [**部署指南**](../docs/DEPLOYMENT.zh-CN.md)。
|