我们有多个移动客户端(ios和android)订阅了一个频道-msg。
服务器正在将7条消息发布到channel-msg:

此时(在设备代码中的"got消息“回调中),我不想执行消息6,因为必须首先执行消息4-5 。
我可以使用history() API来获取丢失的消息,但是使用这种策略,我不得不对设备上收到的每一条消息执行“历史检查”,然后才能执行它。
我有一个更好的模式/设计来处理这个场景吗?
发布于 2016-02-20 01:24:26
PubNub历史
您不需要为每个单独的消息调用历史记录,而是检索所有丢失的消息(每个history调用最多100个)。
只需保存上次接收到的消息的时间标记,就可以在应用程序重新启动时检索它(NSUserDefaults)。当您的应用程序启动时,只需在您的end调用中使用时间标记作为history param ( start param为nil)。
如果您得到100条消息返回(最大),那么很可能您有更多,您需要call history again (paging through storage) and again until you receive > 100 messages。
一旦您收到了最后一条消息,subscribe将在上一次history调用和您的subscribe之间获取任何消息,并继续订阅进一步的消息。
https://stackoverflow.com/questions/35294511
复制相似问题