通知iOS和Android服务器上的数据更改
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通知iOS和Android服务器上的数据更改相关的知识,希望对你有一定的参考价值。
我正在为ios和android创建移动应用程序。问题是当服务器上的任何数据发生变化时,我无法通知移动设备。
我找到了3个解决方案,每个都有减号和优点。
- 使用推送通知。由于iOS始终向用户显示通知,因此这根本不是解决方案。此外,我不知道通知是否会转到设备或何时发生。
- 每隔X秒询问服务器是否存在任何更改。我不想这样做,因为我认为创建太多的HTTP连接并关闭它们并不是一个好主意。此外,如果在设备询问后立即更改数据,则设备上的信息更改将会延迟发生。
- 使用Web套接字。我的应用程序的一次使用期望是~2分钟。因此,网络套接字看起来是一个不错的选择,因为应用程序将被终止或快速进入后台状态,电池消耗不会太多。此外,所有服务器端数据更改都将及时到达设备。但我对网络套接字知之甚少。我的意见可以接受吗?此外,我的服务器可以完成多少并发连接。这也是一个问题。
这是我的所有解决方案。
该文件将建议假设1.以上是不正确的。
如果您阅读“通知有效负载”部分,您会遇到此问题;
aps字典还可以包含content-available属性。值为1的content-available属性允许远程通知充当“静默”通知。当无声通知到达时,iOS会在后台唤醒您的应用程序,以便您可以从服务器获取新数据或进行后台信息处理。用户不会被告知由静默通知产生的新信息或更改信息,但他们可以在下次打开您的应用时找到相关信息。
我认为这在很大程度上取决于你的应用程序在做什么。
我会说你应该使用#1和#2的组合。
2 - 如果您需要来自服务器的信息,则在最基本级别您将不得不提出请求。如果此信息需要是最新的,那么您可以在加载ViewController时继续请求信息。如果您需要在加载ViewController时更新此信息,那么您需要每隔X秒进行一次后续请求...除此之外如果您的用户正在与此数据交互并向服务器发送更新,您可以在此处查看指出数据是否是最新的,并提醒用户以及返回当前数据。
1 - 推送通知操作“发送和忘记”协议。发送通知,如果收到通知,则不会进行验证。这被用作#2的补充,并且“很好”,但不应该依赖。
推送通知是预期的方式(从Google到Google云消息传递,Apple到Apple推送通知服务)。
选项2和3都不受欢迎,因为它们会影响电池寿命,并且它们是不必要的,因为推送通知可以涵盖大多数情况。
以上是关于通知iOS和Android服务器上的数据更改的主要内容,如果未能解决你的问题,请参考以下文章
使用 FCM 解析部署在 Amazon EC2 Android 通知上的服务器