# webgame **Repository Path**: dahetian/webgame ## Basic Information - **Project Name**: webgame - **Description**: No description available - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-08 - **Last Updated**: 2026-03-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # P2P 多人聊天应用 基于 WebSocket 信令服务器和 WebRTC P2P 通信的多人聊天应用。 ## 功能特点 - ✅ 实时聊天功能 - ✅ 在线用户列表 - ✅ 自动 P2P 连接建立 - ✅ 消息优先通过 P2P 传输 - ✅ 用户昵称管理 - ✅ 响应式界面设计 - ✅ 无第三方依赖 ## 快速开始 ### 方法一:使用 npm 脚本(推荐) #### 启动服务器 ```bash npm start # 或者 npm run server ``` #### 停止服务器 ```bash npm run stop ``` #### 重启服务器 ```bash npm run restart ``` #### 重新安装依赖 ```bash npm run clean ``` ### 方法二:使用批处理/Shell 脚本 #### Windows 用户 **⚠️ 重要提示**:脚本已修复编码问题,现在使用英文提示信息 1. **启动服务器**:双击 `start.bat` 或在命令提示符中运行 ```cmd start.bat ``` 2. **停止服务器**:双击 `stop.bat` 或在命令提示符中运行 ```cmd stop.bat ``` #### Linux/Mac 用户 1. **启动服务器**: ```bash ./start.sh ``` 2. **停止服务器**: ```bash ./stop.sh ``` 3. **服务器管理工具**: ```bash ./server-manager.sh ``` ## 访问应用 服务器启动后,在浏览器中访问: ``` http://localhost:8080 ``` 支持在多个浏览器窗口或标签页中同时打开,每个窗口代表一个独立用户。 ## 文件结构 ``` webGame/ ├── package.json # 项目配置 ├── server/ │ └── server.js # WebSocket 信令服务器 ├── client/ │ ├── index.html # 主页面 │ └── client.js # 客户端逻辑 ├── start.bat # Windows 启动脚本(英文) ├── stop.bat # Windows 停止脚本(英文) ├── start.sh # Linux/Mac 启动脚本 ├── stop.sh # Linux/Mac 停止脚本 ├── server-manager.sh # Linux/Mac 管理工具 └── README.md # 项目说明 ``` ## 技术说明 ### 服务器配置 - 默认监听端口:`8080` - WebSocket 路径:`ws://localhost:8080` - 支持同时连接多个客户端 ### 网络要求 - 服务器需要可访问互联网(用于 WebRTC 信令交换) - 客户端需要支持 WebRTC(现代浏览器) ### 浏览器支持 - Chrome 50+ - Firefox 46+ - Safari 11+ - Edge 79+ ## 扩展建议 ### 添加音频/视频通话 1. 在 `client.js` 中添加 `getUserMedia` 调用 2. 在 `createPeerConnection` 中添加轨道添加逻辑 3. 在 UI 中添加音视频控制按钮 ### 添加游戏功能 1. 在信令服务器中添加游戏状态同步 2. 为不同游戏类型创建数据通道 3. 实现游戏数据的序列化和传输 ### 优化网络性能 1. 添加消息可靠传输机制 2. 实现连接质量检测 3. 添加重连机制 ## 故障排除 ### 无法连接到服务器 - 检查端口 `8080` 是否被占用 - 确认防火墙未阻止连接 - 检查 Node.js 是否正确安装 ### WebRTC 连接失败 - 确保浏览器支持 WebRTC - 检查网络是否有 NAT 穿透限制 - 尝试使用 HTTPS(部分浏览器需要 HTTPS 才能使用 WebRTC) ### 依赖安装失败 - 清除 npm 缓存:`npm cache clean --force` - 删除 `node_modules` 和 `package-lock.json` 后重新安装 - 检查网络连接是否正常 ## 许可证 MIT License