一个基于Node.js和WebRTC的多人实时匿名聊天室应用,支持安全的点对点通信。
- 🔒 完全匿名 - 自动生成匿名用户名,不收集任何个人信息
- 🌐 WebRTC技术 - 使用P2P通信,减少服务器负担
- 👥 多人聊天 - 支持创建和加入房间,最多10人同时在线
- 💬 实时消息 - 基于Socket.io的实时消息传输
- 📱 响应式设计 - 支持桌面和移动设备
- 🎨 现代化UI - 美观的用户界面设计
- 后端: Node.js, Express, Socket.io
- 前端: HTML5, CSS3, JavaScript, WebRTC
- 通信: WebRTC (P2P), Socket.io (信令)
npm install
npm start
或者使用开发模式(需要安装nodemon):
npm run dev
打开浏览器访问: http://localhost:3000
- 点击"创建新房间"按钮
- 系统会自动生成房间ID
- 邀请朋友加入你的房间
- 输入房间ID
- 点击"加入房间"按钮
- 开始与房间内的用户聊天
- 在消息输入框中输入文字
- 按Enter键或点击发送按钮
- 查看在线用户列表
- 实时接收新消息
/workspace/
├── server.js # 主服务器文件
├── package.json # 项目配置
├── README.md # 项目说明
└── public/ # 静态文件目录
├── index.html # 主页面
├── style.css # 样式文件
└── script.js # 前端逻辑
- 使用Socket.io作为信令服务器
- 处理房间创建、用户加入/离开
- 转发WebRTC信令消息(offer/answer/ice-candidate)
- 信令交换: 通过Socket.io交换SDP信息
- ICE候选: 交换网络连接信息
- 建立连接: 浏览器间直接建立P2P连接
- 数据传输: 消息通过P2P连接传输
- 自动生成随机用户名(如"神秘访客")
- 不存储用户身份信息
- 每次连接生成新的匿名ID
PORT=3000
可以在server.js中修改:
- 房间人数限制
- 匿名用户名生成规则
- ICE服务器配置
- 在
server.js中添加Socket事件处理
- 在
script.js中实现前端逻辑
- 更新UI样式(
style.css)
项目已预留WebRTC音视频通话接口,可以扩展:
- 使用HTTPS确保WebRTC安全(生产环境)
- 限制房间人数防止滥用
- 不存储敏感用户信息
- 输入内容过滤和转义
- Chrome 60+
- Firefox 55+
- Safari 11+
- Edge 79+
MIT License
欢迎提交Issue和Pull Request来改进这个项目!