Session 生命周期与状态
最后更新:2026 年 7 月 16 日
在 PlayServ Client SDK 的应用层 API 中,并没有显式的“连接服务器”或“断开连接”这类接口。核心概念是 Session。目标是让多人联机的代码可以写得更接近单机逻辑,由 Session 状态和 Event 来驱动。
信息
用 Session 状态来判断你的游戏何时可以:
- 安全地启动 gameplay 逻辑
- 对断网和恢复做出反应
- 处理服务端强制关闭的情况 —— 此时重连没有意义
Session 状态
Session 状态可通过 PlayServ.Session.State 获取。共有四种可达状态:
| 状态 | 说明 |
|---|---|
Offline | 连接服务器之前的初始状态。 |
Recovering | 首次连接,或网络故障后的 Session 恢复。 |
Active | 客户端已连接到服务器,Session 已就绪。 |
Banned | 客户端被服务器强制断开。重连没有意义。 |
订阅 Session 状态
订阅所有状态变化
PlayServ.Session
.Wait<Update>(event => {
// event = { State, Details }
// State = Active, Recovering, Offline, Banned
});
订阅特定状态
PlayServ.Session.Wait<Active>(() => {
// Session is now Active
});
PlayServ.Session.Wait<Banned>((event) => {
event.Details;
});
注意
被强制断开时,Event 会在 event.Details 中给出原因以及后续操作的规则。
未认证访问
未认证的 Session 是权限最低的初始 Session 状态。所有启动游戏的用户都从这个模式开始。它允许访问游戏内的公开信息;超出这个范围的一切都需要先完成认证。
参见 User Login & Authentication。
下一步
- User Login & Authentication —— Session 内的权限是如何提升的
- Proxy Module & Handshake —— 客户端如何进入 Session 流程并达到就绪状态
- Data Subscriptions & Live Updates —— 恢复后重新回到
Active时,订阅应当被恢复