Iphone 如何在不使用开放式套接字的情况下将数据从服务器推送到客户端?

Iphone 如何在不使用开放式套接字的情况下将数据从服务器推送到客户端?,iphone,objective-c,chat,apple-push-notifications,instant-messaging,Iphone,Objective C,Chat,Apple Push Notifications,Instant Messaging,我正在开发一个聊天应用程序,这是我之前的很多人都做过的,所以我希望我的问题能得到一个清晰的答案,但我在任何地方都找不到 所以问题是:如何在不使用开放套接字的情况下将数据从服务器推送到客户端? 当我说数据时,我指的是系统的管理消息 我可以想出两种方法: 轮询-客户端将每隔几秒钟询问服务器是否有新数据等待他。 这种方法的问题是,它会很快杀死电池 APNS苹果推送通知服务-每当服务器有新数据时,他都会向客户端发送推送通知,告知有新数据在等待他。推送本身并不携带数据,这将触发从客户端到服务器的getDa

我正在开发一个聊天应用程序,这是我之前的很多人都做过的,所以我希望我的问题能得到一个清晰的答案,但我在任何地方都找不到

所以问题是:如何在不使用开放套接字的情况下将数据从服务器推送到客户端? 当我说数据时,我指的是系统的管理消息

我可以想出两种方法:

轮询-客户端将每隔几秒钟询问服务器是否有新数据等待他。 这种方法的问题是,它会很快杀死电池

APNS苹果推送通知服务-每当服务器有新数据时,他都会向客户端发送推送通知,告知有新数据在等待他。推送本身并不携带数据,这将触发从客户端到服务器的getData请求

这种方法意味着我需要在不向用户显示警报的情况下发送静默推送,而且我不确定这是否是APN的良好使用

有什么想法吗?也许还有其他更好的方法