# 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)。