Files
Sprout-Farm/test_version_validation.md

100 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 版本号验证功能测试指南
## 功能概述
实现了客户端和服务端的版本号验证机制,确保只有版本匹配的客户端才能登录或注册游戏。
## 实现的功能
### 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"
```gdscript
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"
```gdscript
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**:提供接口查询当前服务端版本和兼容的客户端版本列表