ios - 可靠的服务器到 iPhone 消息传递

标签 ios iphone apple-push-notifications

我的公司为日间交易者提供了一个 iPhone 应用程序,基本上可以告诉他们何时是买入或卖出的好时机。一组服务器生成这些买入和卖出信号,需要在一分钟或更短时间内传送到客户的 iOS 设备。对于我们开发的所有其他移动客户端,我们可以在后台轮询服务器(每分钟一次),以检查更新。

然而,在 iOS 中,似乎无法在 applicationDidEnterBackground 中执行任何与时间或轮询有关的操作。

这促使我查看推送通知,但根据我的阅读,它们并不可靠。他们采用发送后忘记的方法,不能保证他们会收到。

你可以看到这个问题。如果我们发出买入信号并且用户对其采取行动,则 10 分钟后生成卖出信号并通过推送发送,但从未到达,他们可能会损失很多钱。

那么,有什么好的方法可以做到这一点,还是我运气不好?谢谢!

最佳答案

您的服务器和用户设备之间有两个中介:a) Apple 和 b) 网络。

Apple 不保证所有通知都会送达;只有最近的才能保证到达并且只在有限的时间内到达。有关详细信息,请查看 Apple Push Notification Service 中的“服务质量”部分.

如果设备通过移动运营商访问网络,事情可能会变得很糟糕。我遇到过这样的情况,有些通知直到很久以后才到达,有些则完全丢失了。根据我的经验,运营商会热心地保护自己的服务质量,而不是 Apple 等第三方的服务质量。短信/彩信通常不会丢失,而推送通知可能会丢失。

轮询服务器将是您应用的可行替代方案。唉,Apple 不允许对处于后台状态的应用程序进行网络操作(报亭下载和 VoIP 除外)。

关于ios - 可靠的服务器到 iPhone 消息传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8561657/

相关文章:

ios - 如何知道 CGContext 正在绘制到屏幕

iphone - 当维度在类实例化时未定义时,如何将 float 组声明为 Objective-C 中的类变量?

iphone - 使用部分淡入 UITableView 顶部的 UIView

iphone - 自动从 iOS 通知中心删除 UILocalNotification

iOS 远程通知处理应用程序事件案例

ios - 不断根据新数据更新 map

iphone - 如何使用 CGPDFDictionaryRef 对象引用知道 PDF 文件名

ios - cordova 键盘自动显示在每个表单页面中

iOS APNS 未在开发和生产设备上接收到,即使 http2 返回代码 200

ios - 如何在 iOS 应用程序中将录制的语音设置为通知声音?