ios - 移动应用程序在后台时的 Websockets 消息传递

标签 ios websocket pubnub pusher

我正在尝试使用 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/

相关文章:

android - iOS Objective C 覆盖属性 setter

ios - 在 iOS 中用圆角描边绘制圆形动画

ios - 如何使用数字插值对音频进行升采样

android - Delphi Firemonkey iOS后台处理

ruby - padrino && websockets

javascript - 如何将实时模型附加到 angular.js 中的 Controller ?

javascript - 发布一个ROS消息geometry/Point32需要什么格式

c++ - websocket计时器滴答后 boost asio短读错误

ios - 使用 PNReachability 类检查互联网连接

javascript - 无法在 pubnub javascript 回调中收到错误