Eya*_*yal 5 messaging chat objective-c instant-messaging apple-push-notifications
我正在开发一个消息传递应用程序(类似于WhatsApp),我在实现它的主要功能方面遇到了两难 - 从client1向client2发送消息.
问题是我使用的是集中式服务器设计,客户端使用NSURLConnection向服务器发送消息,服务器不保留和管理打开的套接字,也无法为其中一个客户端发送消息,因此客户端有一个计时器并每隔2秒查询服务器以查看是否有新消息正在等待它们.
这种方法的问题是每2秒查询一次服务器似乎会非常快地杀死电池,所以我想也许不是客户端查询服务器,使用APNS所以当client1向服务器发送消息时,服务器将发送一个将通知推送到client2,然后client2将从服务器获取数据.
这种方法是否适用于需要大量推送通知用途的大型消息应用程序?
是.我会说这种方法没问题并且表现良好.
您还可以在应用程序在前面运行时创建套接字连接.但是,当用户退出您的应用时,APNS方式(您的首选方式)也将起作用.
APNS可以处理巨大的负载.据我所知,那里只有很少的延误.
iOS上的PUSH系统只是苹果的HTTP连接,可以使响应通道保持打开几个小时(比如加载网页几个小时).它将使用大约+ 10%的电池.因此,最好不要创建另一个保持活动的HTTP/Socket连接并重新使用苹果通道(APNS)来保存最终用户电池.
在您的应用程序中,您将收到推送通知,您可以解析JSON数据,然后使用您自己的服务器进行拉/同步.
当您的应用程序未在前台运行时,您还应该记住该怎么做(然后您可能会像WhatsApp那样将收到的消息显示为APNS消息).
| 归档时间: |
|
| 查看次数: |
2370 次 |
| 最近记录: |