【发布时间】:2016-05-26 18:54:03
【问题描述】:
我们正在设计一个系统,该系统基于服务器上的特定事件为特定设备创建地理围栏。预计客户端(设备)将与服务器数据同步,问题是如何?
最初(最佳)的想法是向设备发送静默推送,以通知它有新数据,并触发数据拉取。知道此解决方案适用于 Android OS 设备,我们虽然可以在 iOS 上以类似的方式解决该问题。不幸的是,我的 iOS 开发人员告诉我静默推送在 iOS 上不可靠,并提出以下讨论:Silent push notifications only delivered if device is charging and/or app is foreground。
因此,我的问题是如何保持 iOS 设备上的(地理围栏)数据与服务器端同步?
- 我们可以每隔 5 分钟拉一次,这种解决方案效率极低,对于大多数设备来说,新地理围栏很少更改,但我们的“高级用户”需要经常更新地理围栏。
- 我们可以使用某种静默推送机制进行推送,但它必须可靠。
- 可能是某种持久连接(tcp 或更好的 udp),但这似乎是电池耗尽的解决方案。除了不可靠之外,服务器还必须跟踪不断变化的 IP,这在许多蜂窝网络上甚至是不可能的。
- WebSocket。也是电池耗尽的解决方案,不适用于后台同步。对于真正很少更新数据(例如每月一次)的设备来说,这种做法太过分了。
- 一些商业解决方案(PubNub 或 Pusher),但我们肯定更喜欢内部解决方案。
在这种情况下是否有其他解决方案?也许我们的静默推送方法是不对的,但是对于这种用例还有其他内置的 Apple 解决方案吗?
【问题讨论】:
-
显然您只使用 PubNub、Firebase 或类似工具。您已经问过“关于当今如何制作应用程序的主要问题”。您不再真正“制作应用程序”,而是使用 PubNub 或 Firebase 制作系统。
标签: ios iphone apple-push-notifications data-synchronization