我一直在調查這一點。
我挖掘並找出正在使用的默認值。
AWS-SDK正在使用節點http
模塊,其中defaultSocketCount
爲INFINITY
。
他們正在使用https
模塊下maxSocketCount
50
。
相關的代碼片段。
sslAgent: function sslAgent() {
var https = require('https');
if (!AWS.NodeHttpClient.sslAgent) {
AWS.NodeHttpClient.sslAgent = new https.Agent({rejectUnauthorized: true});
AWS.NodeHttpClient.sslAgent.setMaxListeners(0);
// delegate maxSockets to globalAgent, set a default limit of 50 if current value is Infinity.
// Users can bypass this default by supplying their own Agent as part of SDK configuration.
Object.defineProperty(AWS.NodeHttpClient.sslAgent, 'maxSockets', {
enumerable: true,
get: function() {
var defaultMaxSockets = 50;
var globalAgent = https.globalAgent;
if (globalAgent && globalAgent.maxSockets !== Infinity && typeof globalAgent.maxSockets === 'number') {
return globalAgent.maxSockets;
}
return defaultMaxSockets;
}
});
}
return AWS.NodeHttpClient.sslAgent;
}
有關操作套接字數量的信息,請參閱BretzL的答案。
現在有辦法一次爲http
和https
設置代理。您可以通過在從http
切換到https
時更新配置來解決此問題,反之亦然。
參見:https://github.com/aws/aws-sdk-js/issues/1185
但不使用HTTPS不同的自定義代理SDK? – Thihara
請參閱文檔中的類似代碼示例:http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-configuring.html#Registering_Certificate_Bundles – at0mzk
明白了,謝謝。 – Thihara