这是从Skynet框架迁移到Rust Actix框架的游戏服务器。
-
WebSocket基础架构
- 连接管理和心跳机制
- 用户认证(与现有用户中心集成)
-
对战匹配
- 支持多种PVP模式:1v1、1v1v1v1、2v2
- 挑战系统(玩家间相互挑战)
-
协议兼容性
- 客户端消息格式完全兼容
- WebSocket端点相同:
/v1/connect_to_my_actor - 消息类型映射:
matchctl、roomctl、pop-up-message
- 玩家Actor
- matchctl:匹配状态机(玩家间邀请挑战)
- roomctl:房间相关逻辑
- 房间Actor
- 角色状态维持、帧同步
- pvp:玩家组,战斗输赢判定,血量数据维护等
- 房间Actor
- 碰撞箱相关
- 数据持久化
- 玩家数据存储
- 游戏记录保存
现有Skynet客户端无需任何修改即可连接到新的Actix服务器。
认证消息:
{
"token": "用户JWT令牌"
}匹配控制消息:
{
"type": "matchctl",
"body": {
"type": "i_want_match",
"body": {
"PVP_TYPE": "P1V1"
}
}
}房间准备通知:
{
"type": "roomctl",
"body": {
"type": "room_ready",
"body": {
"room_addr": "房间地址",
"pvp_type": "P1V1"
}
}
}cargo run服务器默认监听 127.0.0.1:8888,可以通过环境变量修改:
export HOST=0.0.0.0
export PORT=8080
cargo run- Rust - 系统编程语言
- Actix - Actor框架
- Actix-web - Web框架
- Tokio - 异步运行时
- Serde - JSON序列化