ile*_*tch 7 iphone keep-alive nsurlconnection ios
我正在将我的应用程序转换为使用HTTPS,并希望通过保持打开长期连接来尽可能避免握手成本.
从堆栈溢出中读取Web和其他答案,如果服务器响应Connection,则NSURLConnection应该透明地保持底层套接字打开:keep-alive和Keep-Alive:timeout = N.
但是我看到我的连接只保持打开大约10秒钟.我的Keep-Alive响应设置远不止于此.我也在我的请求标题中发送Connection:keep-alive.
任何人都可以对此有所了解吗?我真的不想使用CFNetwork实现这一目标.
你有两种方法:
正如泰勒在他的回答中所说:
您可以在对象中指定超时
NSURLRequest。实现此目的的一种方法是通过requestWithURL:cachePolicy:timeoutInterval:方法来构造它。NSURLRequestUseProtocolCachePolicy(如果您不想担心这部分,您可以传入默认的cachePolicy参数。)超时是一个以秒为单位的浮点值,基本上iPhone SDK中的所有时间间隔都是如此。还要确保您的
NSURLConnection委托已设置并响应该connection:didFailWithError:方法。连接始终调用此方法或connectionDidFinishLoading:在连接完成时调用。
或者按照克里斯在他的回答中建议的那样:
ASIHTTPRequest 有一个 expirePersistentConnections 方法。它可能会满足您的需求。
它不是 NSURLConnection 的直接替代品,但将代码从 NSURLConnection 移植到 ASIHTTPRequest 并不难。
| 归档时间: |
|
| 查看次数: |
5172 次 |
| 最近记录: |