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
🚀 入门 (本地开发)
-
先决条件
- Node.js (v18.x 或更高版本)
- 一个正在运行的 Redis 实例
-
进入目录并安装依赖
cd backend npm install -
配置环境变量 在
backend/目录中创建一个.env.development.local文件,并填充以下变量:# 服务器配置 PORT=3001 CORS_ORIGIN=http://localhost:3000 # 前端开发服务器的 URL # Redis 配置 REDIS_HOST=127.0.0.1 REDIS_PORT=6379 # REDIS_PASSWORD=your_redis_password -
运行开发服务器
npm run dev服务器将在
PORT环境变量指定的端口上启动(默认为 3001)。
📖 API 与事件摘要
本服务提供了一系列 API 端点和 Socket.IO 事件来支持前端功能。
- API 端点: 主要包括房间创建 (
/api/get_room)、加入和检查等。 - Socket.IO 事件: 负责处理客户端加入房间 (
join) 以及 WebRTC 信令的转发 (offer,answer,ice-candidate)。