Ios 在服务器端远程通知即时消息应用程序的最佳做法

Ios 在服务器端远程通知即时消息应用程序的最佳做法,ios,server,apple-push-notifications,Ios,Server,Apple Push Notifications,假设有两个人A和B,他们正在使用my instance messaging应用程序聊天,当对等方发送消息时,A或B可能会切换到其他应用程序或锁定屏幕。正如您所知,消息来自A,它将首先发送到服务器,然后服务器将发送到B。如果B的应用程序不在前台,它将不会立即收到消息,因此我应该使用远程通知 我想知道的是我的服务器端如何实现远程通知功能。我有两个选择 每次服务器收到消息时,我都会向APNS发送消息 我保留A和B的应用程序状态(前台或后台),当消息进来时,如果对等方在前台,不要向APNS发送通知,否则

假设有两个人A和B,他们正在使用my instance messaging应用程序聊天,当对等方发送消息时,A或B可能会切换到其他应用程序或锁定屏幕。正如您所知,消息来自A,它将首先发送到服务器,然后服务器将发送到B。如果B的应用程序不在前台,它将不会立即收到消息,因此我应该使用远程通知

我想知道的是我的服务器端如何实现远程通知功能。我有两个选择

  • 每次服务器收到消息时,我都会向APNS发送消息
  • 我保留A和B的应用程序状态(前台或后台),当消息进来时,如果对等方在前台,不要向APNS发送通知,否则发送通知
  • 第一种方法很简单,但可能会增加APNS服务器的压力

    第二个很复杂,它必须为每个用户保留应用程序状态,而且可能不准确。假设当“A”的应用程序进入后台,网络非常糟糕时,“A”无法通知服务器进入后台,服务器认为“A”处于前台,因此当“B”向A发送消息时,服务器不会向APNS发送远程通知。 任何有这方面经验的人,请分享您的解决方案,提前感谢。

    尽管推送(远程)通知几乎是即时发送的(APN被扩展以承载),但我建议您探索第三方库。这是一个很好的例子。这是值得探索的。也可能有用

    每次服务器收到消息时,我都会向APNS发送消息

    没错!只需为每条消息发送推送通知。如果应用程序位于前台,则无论如何都不会显示通知

    第一种方法很简单,但可能会增加呼吸暂停综合征的压力 服务器

    APNS会处理好的,不用担心


    如果您尝试将应用程序状态与服务器同步,您迟早会遇到竞争条件和其他问题,因此不要让事情变得过于复杂…

    很抱歉,您正在告诉我们如何构建即时消息应用程序,但我想知道的是如何构建推送通知服务器,以及我应该使用何种策略来通知其应用程序位于后台的用户。即使在后台也可以发送基于APNS的推送通知。我在同一行中回答。。。你看到一些脱节吗?谢谢你的回答,但我仍然不确定这个策略的可行性。我想知道whatsapp或微信是否在使用这种策略。根据我的经验,我可以告诉你,你不会有任何问题。此外,即使WhatsApp并没有推送每一条消息,他们每天发送的推送通知也可能比你们在不久的将来发送的要多,所以APN可以处理这些。。。