我正在开发一款需要维护与网络服务连接的iOS应用。
我考虑在我的应用和服务器之间开发RESTFul
协议。
但重点是服务器还必须能够将数据推送到应用程序。
所以我想知道我是否可以通过使用NSURLConnection
和提供的xml解析器来完成苹果sdk ...
更准确地说,只要应用程序正在运行,是否可以维持NSURLConnection
并处理来自服务器的数据而无需从应用程序请求它?
我是否必须发送Keep-alive数据包?
提前感谢您的帮助!
答案 0 :(得分:1)
您需要发送保持活动数据包或类似数据包,因为您的连接在某些时候会有超时(您当然可以为NSURLConnection
设置非常非常高的超时,但那是这不是最好的主意,因为您很难知道您的服务何时真正超时)。
也就是说,做你在移动设备上提出的建议是有问题的,因为为蜂窝无线电设备供电会占用相当大量的电池。 Apple的文档强烈建议您将网络流量降至最低。最好的解决方案可能是苹果公司为推送通知做的事情 - 使用套接字来推送数据。然而,这比仅使用NSURLConnections
要复杂得多。
答案 1 :(得分:0)
一种解决方案是在应用程序和使用Apple Push通知之间建立RESTful接口。然后iOS负责推送服务器的底层连接。实际上它保持TCP连接存活。与服务器的所有通信都可以使用您的RESTful服务,包括您需要发送到您自己的服务器的令牌注册。这是我自己使用的解决方案,它就像一个魅力。