我正在尝试按照其重播功能的建议实时播放 PubNub 消息,但是我能在网上找到的唯一示例仅与获取特定时间范围内的消息静态历史记录有关。
有谁知道实际处理重放 API 请求(而不是历史 API)的在线教程,或者可以在这里给出一些示例代码(如果可能的话,使用 Swift)?
非常感谢。
自定义 PubNub 重播实现
重放功能仅在 PubNub Node/JavaScript SDK 中可用,并且已被弃用(它不会成为 v4 SDK 的一部分),因为它不需要。如果需要,可以复制此功能。很可能您希望从服务器而不是客户端应用程序执行此操作,但您也可以从客户端执行此操作。
使用历史记录 API(用于客户端实现的 Swift SDK),您将根据需要检索任意数量的消息,因为每次调用history
只返回 100 条消息(将来将推出新功能以简化迭代存储分页)。
下面是从您的服务器实现您自己的replay
功能的高级设计:
- 在您的服务器上,从所需的频道获取历史记录 - 您一次只能获取 100 条消息,因此您可能需要翻阅这些消息才能获得超过 100 条消息。
- 创建一个新频道来重播消息,并让您的客户知道该频道名称是什么,并让他们订阅它。您可以在这些客户端已订阅的另一个频道上发布具有重播频道名称的消息。
- 客户端订阅此重播频道后,您可以继续重播消息。
- 从您使用
history
检索到的最旧消息开始,发布它,然后休眠刚刚发布的消息 timetoken 与要发布的下一条消息的时间令牌之间的差值。