跳到主要内容

Session 生命周期与状态

最后更新:2026 年 7 月 16 日

在 PlayServ Client SDK 的应用层 API 中,并没有显式的“连接服务器”或“断开连接”这类接口。核心概念是 Session。目标是让多人联机的代码可以写得更接近单机逻辑,由 Session 状态和 Event 来驱动。

信息

用 Session 状态来判断你的游戏何时可以:

  • 安全地启动 gameplay 逻辑
  • 对断网和恢复做出反应
  • 处理服务端强制关闭的情况 —— 此时重连没有意义

Session 状态​

Session 状态可通过 PlayServ.Session.State 获取。共有四种可达状态:

connectready断网被强制断开Offline初始状态Recovering正在连接或恢复Active已连接 · 就绪Banned重连没有意义
状态说明
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。


下一步​