此处记录的 REST 和 SignalR API 比客户端 SDK 更复杂。除非这些 SDK 不能满足你的需求,否则请考虑使用 Lobby C++ SDK 或 Matchmaking C++ SDK。
连接到 SignalR 中心
接收实时消息的第一步是创建一个 SignalR 客户端。客户端可以通过使用以下 API 实例化 HubConnection 创建到 SignalR 中心的连接:SignalR Negotiate REST API。此 API 实现了 SignalR 文档中描述的 Negotiate API。客户端在构建
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 配置文档。- SignalR 客户端实现要求 URL 省略此路径的
/negotiate部分(例如,应针对以...playfabapi.com/pubsub结尾的 URL 创建 HubConnection)。 1. 调用此 API 所需的身份验证头可以通过HttpConnectionOptions传递给 SignalR 客户端,请参见此方法。
实现接收消息的客户端方法
请参阅 SignalR 客户端有关实现客户端方法的文档,这些方法将被调用以接收消息。客户端应实现下面客户端方法中列出的所有方法。通过调用服务器方法来启动和结束会话
请参阅 SignalR 客户端有关调用服务器方法的文档以管理会话。例如,连接到中心后,你必须调用 StartOrRecoverSession 以接收可用于订阅资源的connection handle。同样,一旦完成会话,请调用 EndSession。
订阅资源
使用 StartOrRecoverSession 启动会话后,你可以使用返回的connection handle 开始订阅资源并接收消息。
