Skip to main content
此处记录的 REST 和 SignalR API 比客户端 SDK 更复杂。除非这些 SDK 不能满足你的需求,否则请考虑使用 Lobby C++ SDKMatchmaking C++ SDK
Lobby 和 Matchmaking 服务的实时消息功能通过 SignalR 服务工作,该服务公开了一个 SignalR 中心。游戏客户端可以使用此 SignalR 中心接收有关它们所订阅资源的消息。

连接到 SignalR 中心

接收实时消息的第一步是创建一个 SignalR 客户端。客户端可以通过使用以下 API 实例化 HubConnection 创建到 SignalR 中心的连接:SignalR Negotiate REST API。此 API 实现了 SignalR 文档中描述的 Negotiate API。
连接到 SignalR 中心时,强烈建议使用 MessagePack (MsgPack) 编码,并且将来会强制要求它作为唯一支持的编码。
客户端在构建 HubConnection必须KeepAliveInterval 设置为 5 秒。后端服务将超时并关闭在 10 秒内未收到保活 ping 的连接。默认的 SignalR KeepAliveInterval(15 秒)太慢,会导致断开连接。 csharp var connection = new HubConnectionBuilder() .WithUrl(hubUrl, options => { /* auth headers */ }) .WithKeepAliveInterval(TimeSpan.FromSeconds(5)) .Build(); 有关 SignalR 客户端配置的详细信息,请参阅 SignalR 配置文档
  1. SignalR 客户端实现要求 URL 省略此路径的 /negotiate 部分(例如,应针对以 ...playfabapi.com/pubsub 结尾的 URL 创建 HubConnection)。 1. 调用此 API 所需的身份验证头可以通过 HttpConnectionOptions 传递给 SignalR 客户端,请参见此方法

实现接收消息的客户端方法

请参阅 SignalR 客户端有关实现客户端方法的文档,这些方法将被调用以接收消息。客户端应实现下面客户端方法中列出的所有方法。

通过调用服务器方法来启动和结束会话

请参阅 SignalR 客户端有关调用服务器方法的文档以管理会话。例如,连接到中心后,你必须调用 StartOrRecoverSession 以接收可用于订阅资源connection handle。同样,一旦完成会话,请调用 EndSession

订阅资源

使用 StartOrRecoverSession 启动会话后,你可以使用返回的 connection handle 开始订阅资源并接收消息。

API

客户端方法

服务器方法

共享会话方法

另请参阅

最后修改于 2026年8月25日