我在创建使用NSURLConnection的同一主机多,永久连接的OS X应用程序运行中的问题。 我创建不同的房间,一个单独的连接,并保持连接的整个时间的房间是开放的消耗流API。 当打开很多房间,它停止正常工作。
我创建,创建10个连接一个独立的示例应用程序,它似乎只允许6间的连接工作,和其他人在排队。 有谁知道,如果有一种方法来覆盖此限制? 我找不到它的任何地方记录。 我发现的唯一的解决方法是它似乎是在每个主机名,与“本地主机”和“127.0.0.1”,所以测试允许每个主机的连接。6。 我上传与这里的客户端和服务器的样本项目- http://cl.ly/1x3K0D1F072V3U2T0C0I 。
我提起了雷达的东西,这似乎是同样的问题,但在iOS上。 我发现,你不能有超过5个连接同时打开。 该连接不必是指向同一个域。 之后任何会排队。 所以,如果你有5个连接开放极慢的终点,任何其他连接不会通过。
雷达: http://openradar.appspot.com/radar?id=2542401
苹果公司的回复:
这是我们NSURLConnection的连接高速缓存的作用。 预计。 我们希望解决与新的API这种类型的配置。
我问他们是否可以给我信息了(它确实改变连接类型有影响吗??),他们说:
不幸的是,我们不能给出有关连接限制行为的细节。
用户代理一般(浏览器,Firefox,Safari浏览器)使用每个主机名六个同步TCP连接,与潜在的一次性的。
你可以使用CFNetwork的API(CFHTTPMessage)打破了这一限制。
这里是CFNetwork的编程指南。 https://developer.apple.com/library/mac/documentation/Networking/Conceptual/CFNetwork/Introduction/Introduction.html#//apple_ref/doc/uid/TP30001132
顺便说一句,如果你决定使用CFNetwork的,你需要解决的代理和认证。
希望这可以帮助!