- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有多个移动客户端(ios 和 android)订阅了一个 channel 消息。
此时(在设备代码中的“收到 PubNub 消息”回调中),我不想执行消息 6,因为我必须先执行消息 4-5。。 p>
我可以使用 history() API 来获取丢失的消息,但是通过这种策略,我必须先对我在设备上收到的每条消息执行“历史检查”,然后才能执行它。
我有更好的模式/设计来处理这种情况吗?
最佳答案
您不需要为每条消息调用历史记录,而是检索所有错过的消息(每个 history
调用最多 100 条)。
只需保存上次收到的消息的时间标记,您可以在应用重新启动时检索它 (NSUserDefaults
)。当您的应用程序启动时,只需在您的 history
调用中使用时间标记作为 end
参数(start
参数为 nil)。
如果您返回了 100 条消息(最大值),那么您可能有更多消息并且您需要 call history again (paging through storage) and again until you receive > 100 messages .
收到最后一条消息后,use the timetoken of that last message (the one closest to now), use that timetoken to subscribe
获取上次 history
调用和您的 subscribe
之间的任何消息,并继续订阅更多消息。
关于android - PunNub - 设备关闭时恢复丢失消息的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35294511/
我们有多个移动客户端(ios 和 android)订阅了一个 channel 消息。 服务器正在向 channel-msg 发布 7 条消息: 消息 1-3 已发布到 channel 。 设备通过本地
我是一名优秀的程序员,十分优秀!