通知iOS和Android服务器上的数据更改

问题描述 投票:1回答:3

我正在为iOS和Android创建移动应用程序。问题是当服务器上的任何数据发生变化时,我无法通知移动设备。

我找到了3个解决方案,每个都有减号和优点。

  1. 使用推送通知。由于iOS始终向用户显示通知,因此这根本不是解决方案。此外,我不知道通知是否会转到设备或何时发生。
  2. 每隔X秒询问服务器是否存在任何更改。我不想这样做,因为我认为创建太多的HTTP连接并关闭它们并不是一个好主意。此外,如果在设备询问后立即更改数据,则设备上的信息更改将会延迟发生。
  3. 使用Web套接字。我的应用程序的一次使用期望是~2分钟。因此,网络套接字看起来是一个不错的选择,因为应用程序将被终止或快速进入后台状态,电池消耗不会太多。此外,所有服务器端数据更改都将及时到达设备。但我对网络套接字知之甚少。我的意见可以接受吗?此外,我的服务器可以完成多少并发连接。这也是一个问题。

这是我的所有解决方案。

android ios server
3个回答
1
投票

该文件将建议假设1.以上是不正确的。

如果您阅读“通知有效负载”部分,您会遇到此问题;

aps字典还可以包含content-available属性。值为1的content-available属性允许远程通知充当“静默”通知。当无声通知到达时,iOS会在后台唤醒您的应用程序,以便您可以从服务器获取新数据或进行后台信息处理。用户不会被告知由静默通知产生的新信息或更改信息,但他们可以在下次打开您的应用时找到相关信息。

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html


1
投票

我认为这在很大程度上取决于你的应用程序在做什么。

我会说你应该使用#1和#2的组合。

2 - 如果您需要来自服务器的信息,则在最基本级别您将不得不提出请求。如果此信息需要是最新的,那么您可以在加载ViewController时继续请求信息。如果您需要在加载ViewController时更新此信息,那么您需要每隔X秒进行一次后续请求...除此之外如果您的用户正在与此数据交互并向服务器发送更新,您可以在此处查看指出数据是否是最新的,并提醒用户以及返回当前数据。

1 - 推送通知操作“发送和忘记”协议。发送通知,如果收到通知,则不会进行验证。这被用作#2的补充,并且“很好”,但不应该依赖。


0
投票

推送通知是预期的方式(从Google到Google云消息传递,Apple到Apple推送通知服务)。

选项2和3都不受欢迎,因为它们会影响电池寿命,并且它们是不必要的,因为推送通知可以涵盖大多数情况。

© www.soinside.com 2019 - 2024. All rights reserved.