我有一个内置nodejs的代理服务器。它工作正常,直到我尝试通过iOS iPhone模拟器浏览网页。然后它会加载一些请求并无限期挂起。
我把它缩小到这个:
var req = http.request({...}, function(){
// this is not being called for some requests
})
...反过来让我发现这个:
req.on('socket', function(){
// this is not being called for some requests
})
怀疑trouble with pooling of sockets,我设置http.globalAgent.maxSockets = 50
并确实修复了它。 (默认值为5.)但我觉得我只修复了更深层问题的症状。它只发生在我从iOS模拟器中通过xcode浏览时。使用桌面Chrome,而不是在模拟器中,但使用相同的代理实例,没有问题。