3.3 KiB
3.3 KiB
版本号验证功能测试指南
功能概述
实现了客户端和服务端的版本号验证机制,确保只有版本匹配的客户端才能登录或注册游戏。
实现的功能
1. 客户端修改
- 在
MainGame.gd中定义了客户端版本号:const client_version :String = "1.0.1" - 在
TCPNetworkManager.gd中修改了登录和注册请求,添加了版本号字段 - 在
login_panel.gd中添加了版本号显示功能
2. 服务端修改
- 在
TCPGameServer.py中定义了服务端版本号:server_version: str = "1.0.1" - 添加了版本号验证函数
_check_client_version() - 在登录和注册处理中添加了版本号验证逻辑
- 在服务器启动时显示版本信息
测试步骤
测试1:版本匹配(正常情况)
- 确保客户端和服务端版本号都是 "1.0.1"
- 启动服务器,应该看到:
萌芽农场游戏服务器 v1.0.1 服务器地址: 0.0.0.0:4040 ================================================== - 启动客户端,应该看到:
萌芽农场客户端 v1.0.1 启动 - 在登录界面应该显示:
萌芽农场 v1.0.1 - 欢迎使用 - 尝试登录或注册,应该正常工作
测试2:版本不匹配(客户端版本较低)
- 修改客户端版本号为 "0.9.0":
const client_version :String = "0.9.0" - 保持服务端版本为 "1.0.0"
- 重新启动客户端
- 尝试登录,应该收到错误消息:
版本不匹配!客户端版本: 0.9.0, 服务端版本: 1.0.1,请更新客户端 - 尝试注册,应该收到相同的错误消息
测试3:版本不匹配(客户端版本较高)
- 修改客户端版本号为 "1.1.0":
const client_version :String = "1.1.0" - 保持服务端版本为 "1.0.1"
- 重新启动客户端
- 尝试登录或注册,应该收到版本不匹配的错误消息
测试4:空版本号处理
- 修改客户端代码,发送空的版本号
- 尝试登录或注册,应该被拒绝
预期结果
成功情况
- 版本匹配时,登录和注册功能正常工作
- 客户端和服务端都显示正确的版本信息
失败情况
- 版本不匹配时,登录和注册被拒绝
- 显示清晰的错误消息,指出版本不匹配的具体信息
- 服务端记录相应的警告日志
日志示例
服务端日志(版本匹配)
[INFO] [SERVER] TCP游戏服务器初始化 - 版本: 1.0.1
[INFO] [SERVER] 用户 12345 登录成功
服务端日志(版本不匹配)
[WARNING] [SERVER] 用户 12345 登录失败: 版本不匹配 (客户端: 0.9.0, 服务端: 1.0.1)
注意事项
- 版本号格式:建议使用语义化版本号格式(如 1.0.0)
- 向后兼容性:如果需要支持多个版本,可以修改验证逻辑
- 版本更新策略:
- 主版本号变更:不兼容的重大更新
- 次版本号变更:向后兼容的功能更新
- 修订版本号变更:向后兼容的问题修复
扩展功能建议
- 版本兼容性矩阵:支持多个兼容版本
- 自动更新提示:客户端检测到版本不匹配时提供更新链接
- 最低版本要求:设置服务端支持的最低客户端版本
- 版本信息API:提供接口查询当前服务端版本和兼容的客户端版本列表