gpt4 book ai didi

objective-c - 在消息传递应用程序中使用 APN

转载 作者:太空狗 更新时间:2023-10-30 03:52:09 27 4
gpt4 key购买 nike

我正在开发一个消息传递应用程序(类似于 WhatsApp),但我在实现它的主要功能时遇到了两难——从客户端 1 向客户端 2 发送消息。

问题是我使用的是集中式服务器设计,客户端使用 NSURLConnection 向服务器发送消息,服务器不保留和管理打开的套接字,也不能为其中一个客户端发送消息,所以客户端有一个计时器,每 2 秒向服务器查询一次,看看是否有新消息在等待它们。

这种方法的问题是每 2 秒查询一次服务器似乎会很快耗尽电池电量,所以我想也许可以使用 APNS 而不是客户端查询服务器,这样当客户端 1 向服务器发送消息时,服务器会向client2发送推送通知,然后client2会从服务器获取数据。

这种方法是否适用于需要大量推送通知的大型消息传递应用程序?

最佳答案

是的。我会说这种方法没问题,而且效果很好。

您还可以在您的应用程序在前面运行时创建一个套接字连接。但是当用户退出您的应用程序时,APNS 方式(您的首选方式)也将起作用。

APNS 可以处理巨大的负载。据我所知,那里只有很少的延迟。

iOS 上的 PUSH 系统只是一个到苹果的 HTTP 连接,它使响应 channel 保持开放几个小时(比如加载一个网页几个小时)。它将使用大约 +10% 的电池。因此最好不要创建另一个保持事件状态的 HTTP/Socket 连接并重新使用苹果 channel (APNS) 来节省最终用户的电量。

在您的应用中,您将收到推送通知,您可以解析 JSON 数据,然后拉取/同步到您自己的服务器。

您还应该记住当您的应用程序未在前台运行时该怎么做(然后您可能会像 WhatsApp 一样将收到的消息显示为 APNS 消息)。

关于objective-c - 在消息传递应用程序中使用 APN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9481036/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com