# WebSocket 测试文件说明 本目录包含用于测试 WebSocket 服务器的各种测试文件,支持不同环境和场景的测试需求。 ## 测试文件列表 1. **`test_websocket.php`** - PHP 客户端测试脚本 2. **`test_websocket.html`** - 浏览器端 JavaScript 测试页面 3. **`test_wechat_miniprogram.js`** - 微信小程序客户端测试代码 4. **`test_readme.md`** - 本测试文件说明文档 ## 测试前准备 在开始测试之前,请确保: 1. **启动 WebSocket 服务器**: ```bash cd d:/projects/shop-projects/backend/src php ws_server.php ``` 2. **确保服务器运行正常**: 服务器启动后,您应该看到类似以下输出: ``` WebSocket服务器已启动,监听地址: ws://localhost:8080 已注册WebSocket控制器的addon路径: - ws://localhost:8080/ws/aikefu (已注册) 默认测试路径: - ws://localhost:8080/ws (默认路径,用于连接测试) 按 Ctrl+C 停止服务器 ``` ## 1. PHP 客户端测试 (`test_websocket.php`) ### 功能说明 用于在 PHP 环境下测试 WebSocket 服务器的连接和基本功能。 ### 使用方法 1. **直接运行测试脚本**: ```bash cd d:/projects/shop-projects/backend/docs/websocket php test_websocket.php ``` 2. **测试不同路径**: - 默认测试路径:`ws://localhost:8080/ws` - aikefu 插件路径:`ws://localhost:8080/ws/aikefu` 可以通过修改脚本中的 `$wsUrl` 变量来切换测试路径。 ### 预期输出 成功连接并发送消息后,您应该看到类似以下输出: ``` 正在连接到 WebSocket 服务器: ws://localhost:8080/ws ✅ 成功连接到 WebSocket 服务器 📤 发送 ping 消息 📤 发送测试消息 📥 收到消息: {"type":"welcome","message":"欢迎连接到默认WebSocket测试路径","info":"此路径仅用于测试,不提供实际功能。请使用/ws/{addonName}连接到具体的addon服务。"} 📥 收到消息: {"type":"pong"} 📥 收到消息: {"type":"info","message":"收到消息,但默认路径不提供实际功能","received":{"message":"Hello WebSocket!","action":"test"}} ``` ## 2. 浏览器端 JavaScript 测试 (`test_websocket.html`) ### 功能说明 用于在浏览器环境下测试 WebSocket 服务器的连接和交互功能,提供直观的用户界面。 ### 使用方法 1. **打开测试页面**: - 直接用浏览器打开 `test_websocket.html` 文件 - 或者通过 Web 服务器访问:`http://your-domain/docs/websocket/test_websocket.html` 2. **配置测试参数**: - 在 "设置" 区域输入 WebSocket 服务器地址 - 默认地址:`ws://localhost:8080/ws` - aikefu 插件地址:`ws://localhost:8080/ws/aikefu` 3. **连接和测试**: - 点击 "连接" 按钮建立 WebSocket 连接 - 使用 "发送 Ping"、"发送测试消息" 或 "发送自定义消息" 按钮进行测试 - 在消息区域查看发送和接收的消息 ### 主要功能 - **连接管理**:连接、断开连接、重连 - **消息发送**: - Ping 消息:测试服务器响应 - 测试消息:发送预设的测试数据 - 自定义消息:支持发送任意 JSON 格式消息 - **消息显示**: - 美化显示 JSON 格式消息 - 区分发送和接收的消息 - 显示消息时间和发送者 ## 3. 微信小程序客户端测试 (`test_wechat_miniprogram.js`) ### 功能说明 用于在微信小程序环境下测试 WebSocket 服务器的连接和通信功能,模拟实际的微信小程序客户端环境。 ### 使用方法 1. **集成测试代码**: - 将 `test_wechat_miniprogram.js` 文件中的代码复制到微信小程序的页面 JavaScript 文件中 - 将注释中的 WXML 和 WXSS 代码分别复制到对应的 `.wxml` 和 `.wxss` 文件中 2. **配置服务器地址**: - 修改 `wsUrl` 变量为您的 WebSocket 服务器地址 - 注意:微信小程序要求使用 HTTPS/WSS 协议,需要配置 SSL 证书 3. **运行测试**: - 在微信开发者工具中打开小程序项目 - 进入包含测试代码的页面 - 点击 "连接" 按钮建立 WebSocket 连接 - 使用测试按钮发送消息并查看接收结果 ### 注意事项 - **微信小程序 WebSocket 限制**: - 只支持 HTTPS/WSS 协议 - 需要在小程序管理后台配置合法域名 - 最多同时存在 5 个 WebSocket 连接 - **调试建议**: - 使用微信开发者工具的调试模式查看日志 - 先在浏览器端测试确保服务器正常 - 注意网络环境和防火墙设置 ## 测试场景和用例 ### 基本连接测试 | 测试场景 | 预期结果 | 测试文件 | |---------|---------|---------| | 连接默认测试路径 | 成功连接,收到欢迎消息 | 所有测试文件 | | 连接 aikefu 插件路径 | 成功连接 | 所有测试文件 | | 断开连接 | 连接关闭,收到关闭通知 | 所有测试文件 | | 重连 | 成功重新建立连接 | 浏览器和小程序测试文件 | ### 消息功能测试 | 测试场景 | 预期结果 | 测试文件 | |---------|---------|---------| | 发送 Ping 消息 | 收到 Pong 响应 | 所有测试文件 | | 发送测试消息 | 收到服务器处理结果 | 所有测试文件 | | 发送 JSON 消息 | 正确解析和处理 | 所有测试文件 | | 发送错误格式消息 | 收到错误提示 | 所有测试文件 | ## 常见问题和解决方案 ### 1. 连接失败 **可能原因**: - WebSocket 服务器未启动 - 服务器地址或端口错误 - 防火墙或网络设置阻止连接 - 微信小程序域名未配置 **解决方案**: - 确认服务器已启动并运行正常 - 检查服务器地址和端口配置 - 关闭防火墙或添加例外规则 - 在微信小程序管理后台配置合法域名 ### 2. 消息发送失败 **可能原因**: - WebSocket 连接已关闭 - 消息格式不正确 - 服务器处理错误 **解决方案**: - 检查连接状态,必要时重新连接 - 确保消息格式符合 JSON 规范 - 查看服务器日志排查错误 ### 3. 接收消息异常 **可能原因**: - 服务器返回格式错误 - 网络传输问题 - 客户端解析错误 **解决方案**: - 检查服务器代码确保返回正确格式 - 检查网络连接稳定性 - 查看客户端日志排查解析错误 ## 测试完成后的清理 测试完成后,您可以: 1. **停止 WebSocket 服务器**: 在运行服务器的终端中按 `Ctrl+C` 停止服务器。 2. **关闭测试客户端**: - 浏览器测试:关闭浏览器标签页 - PHP 测试:测试完成后自动退出 - 微信小程序测试:退出小程序页面 ## 扩展测试建议 1. **性能测试**: - 测试同时连接多个客户端 - 测试大消息传输 - 测试长时间连接稳定性 2. **异常场景测试**: - 服务器意外关闭 - 网络中断恢复 - 消息丢失场景 3. **功能完整性测试**: - 测试所有消息类型 - 测试错误处理机制 - 测试安全验证功能 ## 联系和支持 如果在测试过程中遇到问题,请联系开发人员或查看服务器日志获取更多信息。 --- **更新时间**:2025-12-19 **版本**:1.0.0 **维护人员**:WebSocket 开发团队