Files
Sprout-Farm/test_version_validation.md

3.3 KiB
Raw Blame History

版本号验证功能测试指南

功能概述

实现了客户端和服务端的版本号验证机制,确保只有版本匹配的客户端才能登录或注册游戏。

实现的功能

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. 确保客户端和服务端版本号都是 "1.0.1"
  2. 启动服务器,应该看到:
    萌芽农场游戏服务器 v1.0.1
    服务器地址: 0.0.0.0:4040
    ==================================================
    
  3. 启动客户端,应该看到:
    萌芽农场客户端 v1.0.1 启动
    
  4. 在登录界面应该显示:萌芽农场 v1.0.1 - 欢迎使用
  5. 尝试登录或注册,应该正常工作

测试2版本不匹配客户端版本较低

  1. 修改客户端版本号为 "0.9.0"
    const client_version :String = "0.9.0"
    
  2. 保持服务端版本为 "1.0.0"
  3. 重新启动客户端
  4. 尝试登录,应该收到错误消息:
    版本不匹配!客户端版本: 0.9.0, 服务端版本: 1.0.1,请更新客户端
    
  5. 尝试注册,应该收到相同的错误消息

测试3版本不匹配客户端版本较高

  1. 修改客户端版本号为 "1.1.0"
    const client_version :String = "1.1.0"
    
  2. 保持服务端版本为 "1.0.1"
  3. 重新启动客户端
  4. 尝试登录或注册,应该收到版本不匹配的错误消息

测试4空版本号处理

  1. 修改客户端代码,发送空的版本号
  2. 尝试登录或注册,应该被拒绝

预期结果

成功情况

  • 版本匹配时,登录和注册功能正常工作
  • 客户端和服务端都显示正确的版本信息

失败情况

  • 版本不匹配时,登录和注册被拒绝
  • 显示清晰的错误消息,指出版本不匹配的具体信息
  • 服务端记录相应的警告日志

日志示例

服务端日志(版本匹配)

[INFO] [SERVER] TCP游戏服务器初始化 - 版本: 1.0.1
[INFO] [SERVER] 用户 12345 登录成功

服务端日志(版本不匹配)

[WARNING] [SERVER] 用户 12345 登录失败: 版本不匹配 (客户端: 0.9.0, 服务端: 1.0.1)

注意事项

  1. 版本号格式:建议使用语义化版本号格式(如 1.0.0
  2. 向后兼容性:如果需要支持多个版本,可以修改验证逻辑
  3. 版本更新策略
    • 主版本号变更:不兼容的重大更新
    • 次版本号变更:向后兼容的功能更新
    • 修订版本号变更:向后兼容的问题修复

扩展功能建议

  1. 版本兼容性矩阵:支持多个兼容版本
  2. 自动更新提示:客户端检测到版本不匹配时提供更新链接
  3. 最低版本要求:设置服务端支持的最低客户端版本
  4. 版本信息API:提供接口查询当前服务端版本和兼容的客户端版本列表