node.js 服务器限制新连接
node.js server limiting new connections
我正在使用 node.js 创建一个服务器,用于将服务器发送的事件发送到客户端。我是 运行 Windows 7 机器上的服务器。
我的连接方式是使用apache httpclient 发送HTTP get 请求,建立TCP 连接并从服务器接收事件。我注意到的是,在我同时连接 11 个客户端后,之前的连接关闭。
Node.js有上限吗?还是这个系统特定?我一直在用谷歌搜索这个,但我找不到任何东西。
这是我发送的请求中的示例代码:
HttpClient httpClient = HttpClientBuilder.create().build();
String domain = "...";
HttpUriRequest httpGet = new HttpGet(domain); String encoding = "..."
httpGet.setHeader(new BasicHeader("Authorization", "Basic " + encoding));
httpGet.setHeader(new BasicHeader("Content-Type", "text/event-stream"));
HttpResponse resp = httpClient.execute(httpGet);
HttpEntity entity = resp.getEntity();
if (resp.getStatusLine().getStatusCode() != 200){ String
responseString = EntityUtils.toString(entity, "UTF-8");
System.out.println(responseString);
}
而且我在我的测试代码中多次这样做。
感谢您的帮助!
看看这个 属性 看看它是否对你有帮助:
https://nodejs.org/api/http.html#http_agent_maxsockets
根据您使用的 Node.js 版本,它可能会限制打开的连接数。尝试提高它:
http.globalAgent.maxSockets = 128; // or whatever suits your app
自从 node js v0.12 以来 http.globalAgent.maxSockets
已设置为 Infinity
,因此这是客户端问题。
这应该为客户端设置限制:
http.globalAgent.maxSockets = 1000;
另一种选择是将 Agent
对象传递给 http 请求。看看另一个问题:
我正在使用 node.js 创建一个服务器,用于将服务器发送的事件发送到客户端。我是 运行 Windows 7 机器上的服务器。
我的连接方式是使用apache httpclient 发送HTTP get 请求,建立TCP 连接并从服务器接收事件。我注意到的是,在我同时连接 11 个客户端后,之前的连接关闭。
Node.js有上限吗?还是这个系统特定?我一直在用谷歌搜索这个,但我找不到任何东西。
这是我发送的请求中的示例代码:
HttpClient httpClient = HttpClientBuilder.create().build();
String domain = "...";
HttpUriRequest httpGet = new HttpGet(domain); String encoding = "..."
httpGet.setHeader(new BasicHeader("Authorization", "Basic " + encoding));
httpGet.setHeader(new BasicHeader("Content-Type", "text/event-stream"));
HttpResponse resp = httpClient.execute(httpGet);
HttpEntity entity = resp.getEntity();
if (resp.getStatusLine().getStatusCode() != 200){ String
responseString = EntityUtils.toString(entity, "UTF-8");
System.out.println(responseString);
}
而且我在我的测试代码中多次这样做。
感谢您的帮助!
看看这个 属性 看看它是否对你有帮助:
https://nodejs.org/api/http.html#http_agent_maxsockets
根据您使用的 Node.js 版本,它可能会限制打开的连接数。尝试提高它:
http.globalAgent.maxSockets = 128; // or whatever suits your app
自从 node js v0.12 以来 http.globalAgent.maxSockets
已设置为 Infinity
,因此这是客户端问题。
这应该为客户端设置限制:
http.globalAgent.maxSockets = 1000;
另一种选择是将 Agent
对象传递给 http 请求。看看另一个问题: