我正在尝试使用 Pusher 或 PubNub (websockets) 实现一个 iOS 聊天应用程序。
问题:当 iOS 应用程序在后台时,消息传递如何工作?
我了解 Websockets 实现提供实时消息传递并且不缓存消息。 是否是后台socket连接断开导致消息丢失?
如果是,我该如何恢复丢失的消息?一个想法是在每次应用程序进入前台时实现状态刷新协议(protocol)。
最佳答案
PubNub 丢失消息恢复选项
你提到了 PubNub(我工作的公司),正如@FrankG 提到的,除非你获得 Apple 的许可在后台运行你的应用程序(保持连接到互联网,因此,PubNub),你将不会收到任何消息实时。
您可以使用 PubNub's Mobile Push Gateway并在您的应用处于后台(但空闲/未运行)或完全未运行(终止状态)时接收 APNS 推送消息。
当应用再次激活时,PubNub 可以是configured to automatically retrieve missed messages来自它订阅的 channel ,但这对于短时间断开连接很有用。
对于较长时间的离线,您可以启用 Storage & Playback并使用 the historyForChannel
API to fetch all the missed messages您需要的所有 channel 。
关于ios - 移动应用程序在后台时的 Websockets 消息传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36303133/