即时消息推送通知

Chi*_*nta 1 apple-push-notifications ios

我在 iOS 中有一个即时消息应用程序。我想使用推送通知让用户知道他是否在应用程序最小化时收到了消息。最初我已经实现了应用程序,当应用程序最小化时,应用程序通知我的服务器,服务器又联系 APNS 以通知收到消息。但是应用程序通知服务器有延迟。因此,如果用户最小化应用程序,同时向他发送消息,他将不会收到通知,因为我的服务器仍在向应用程序而不是 APNS 发送消息。

我想知道如何在聊天应用程序中克服这种情况。他们是否将所有聊天消息发送到 APNS,而不管用户是否已最小化应用程序。如果我将所有消息都发送到 APNS,这会是一个好的设计吗?

Nic*_*ick 5

在 iOS 上,当应用程序被“最小化”(实际上是在后台)时,您不能依赖任何正在运行的进程。您的进程可能因各种原因被操作系统终止,在任何情况下,除非您有资格进行特殊的扩展后台处理,否则您的应用程序的处理时间不能超过 10 分钟。

通常,对于聊天类型的应用程序,每次客户端收到消息时,同一个客户端都会发回一条消息,让服务器知道它已收到该消息。这样,如果您的服务器在几秒钟后没有收到消息已收到的信号,您可以假设该应用程序没有在设备上运行,而是可以通过推送发送消息。

不需要在客户端上使用会耗尽电池的过度处理,也不需要为每条消息发送推送。