在适用于iOS的Restful协议中推送通知

时间:2012-02-04 13:31:04

标签: objective-c ios rest nsurlconnection

我正在开发一款需要维护与网络服务连接的iOS应用。

我考虑在我的应用和服务器之间开发RESTFul协议。 但重点是服务器还必须能够将数据推送到应用程序。 所以我想知道我是否可以通过使用NSURLConnection和提供的xml解析器来完成苹果sdk ...

更准确地说,只要应用程序正在运行,是否可以维持NSURLConnection并处理来自服务器的数据而无需从应用程序请求它? 我是否必须发送Keep-alive数据包?

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您需要发送保持活动数据包或类似数据包,因为您的连接在某些时候会有超时(您当然可以为NSURLConnection设置非常非常高的超时,但那是这不是最好的主意,因为您很难知道您的服务何时真正超时)。

也就是说,做你在移动设备上提出的建议是有问题的,因为为蜂窝无线电设备供电会占用相当大量的电池。 Apple的文档强烈建议您将网络流量降至最低。最好的解决方案可能是苹果公司为推送通知做的事情 - 使用套接字来推送数据。然而,这比仅使用NSURLConnections要复杂得多。

答案 1 :(得分:0)

一种解决方案是在应用程序和使用Apple Push通知之间建立RESTful接口。然后iOS负责推送服务器的底层连接。实际上它保持TCP连接存活。与服务器的所有通信都可以使用您的RESTful服务,包括您需要发送到您自己的服务器的令牌注册。这是我自己使用的解决方案,它就像一个魅力。