Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 通知iOS&;安卓在服务器上更改数据_Android_Ios_Server - Fatal编程技术网

Android 通知iOS&;安卓在服务器上更改数据

Android 通知iOS&;安卓在服务器上更改数据,android,ios,server,Android,Ios,Server,我正在为iOS和Android创建移动应用程序。问题是,当服务器上的任何数据发生更改时,我无法通知移动设备 我找到了3个解,每个解都有正负 使用推送通知。由于iOS总是向用户显示通知,因此这根本不是一个解决方案。我也不知道通知是否会发送到设备或何时发送 每隔X秒询问服务器是否存在任何更改。我不想这样做,因为我认为创建太多HTTP连接并关闭它们不是一个好主意。此外,如果数据在设备发出请求后立即更改,则设备上的信息更改将延迟 使用web套接字。我的应用程序的一次性使用预期为~2分钟。所以WebSoc

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

我找到了3个解,每个解都有正负

  • 使用推送通知。由于iOS总是向用户显示通知,因此这根本不是一个解决方案。我也不知道通知是否会发送到设备或何时发送

  • 每隔X秒询问服务器是否存在任何更改。我不想这样做,因为我认为创建太多HTTP连接并关闭它们不是一个好主意。此外,如果数据在设备发出请求后立即更改,则设备上的信息更改将延迟

  • 使用web套接字。我的应用程序的一次性使用预期为~2分钟。所以WebSocket看起来是个不错的选择,因为应用程序会很快被终止或进入后台状态,电池消耗不会太多。此外,所有服务器端数据更改都将及时到达设备。但我对web套接字了解不多。我的意见可以接受吗?还有我的服务器可以完成多少并发连接。这也是一个问题吗


  • 以下是我的所有解决方案。

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

    如果您阅读了通知有效负载一节,您会发现这一点

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


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

    我认为你应该使用#1和#2的组合

    2-在最基本的级别上,如果您需要服务器提供的信息,则必须发出请求。如果此信息需要最新,则可以在加载ViewController时继续请求该信息。如果需要在加载ViewController时更新此信息,则需要每隔X秒发出后续请求。。。此外,如果您的用户正在与此数据交互并向服务器发送更新,则此时您可以检查数据是否为最新数据,并提醒用户并返回当前数据


    1-推送通知在“发送并忘记”协议之外运行。通知已发送,但未验证是否已收到。这是对#2的补充,是“好的”,但不应依赖于此。

    推送通知是预期的方式(从谷歌通过谷歌云消息,苹果通过苹果推送通知服务)


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

    这需要什么类型的应用程序。.我建议使用WebSocket,因为我发现它对服务器到客户端的通信很有用。.应用程序将对象声明为打开、关闭或关闭。我必须在对象状态改变时通知用户——几乎是准确的时间。任何用户都不应将关闭的对象视为open或Willclose。我建议使用web套接字,因为您的服务器似乎需要非常频繁和即时地与客户端进行通信。在我的情况下,不是非常频繁,而是即时。Ok。我有个错误。感谢您提供的信息,但通知状态(传输状态)仍然未知。任何设备都可能接收不到通知APNS非常准确。设备接收到的通知通常是及时的,但GCM不是。有时安卓设备什么也收不到。它不仅仅是更新数据。如果是,没问题,我可以用#2。我的一个老应用程序就是这样运行的。但这一次,应用程序将对象声明为打开、关闭和关闭。我必须在对象状态改变时通知用户——几乎是准确的时间。任何用户都不应将关闭的对象视为打开或将关闭。您将拥有一个计时器,该计时器将递减以实时显示时间变化。当此计时器达到X秒时,它将命中服务器并更新时间。当计时器继续倒计时时,如果达到10分钟,那么它将命中服务器并更新时间,如果距离关闭时间确实是10分钟,那么您可以在该时间准确地更新用户。。。关闭时间也是一样。正如我提到的,我的应用程序的预期活动时间太短,我不担心电池寿命。但我不知道web套接字的其他场景。