2
不是重複的:this question,因爲我試圖使用發佈的鏈接作爲答案來解決我的問題。模擬多個socket.io連接
我創建一個小的虛擬套接字客戶端來幫助測試我的產品之一,它看起來像這樣:
var ee = require('events').EventEmitter;
require('http').globalAgent.maxSockets = 1000;
function Dummy(){
this.config = require('../config/credentials.js');
this.socket = require('socket.io-client')(this.config.socketIO.url);
var self = this;
this.socket.on('task', function(task) {
self.createTask(task);
});
}
util.inherits(Dummy, ee);
module.exports = Dummy;
Dummy.prototype.createTask = function(name){
var self = this;
setInterval(function sendStuff(){
self.socket.emit("msg")
}, 1000);
};
就其本身而言,它工作正常;但是,當我嘗試啓動其中的許多像這樣:
for (var i = 0; i < 100; i++) {
fakeClients.push(new Dummy());
};
似乎將連接池和連接池僅顯示爲一個客戶端。 基於this link,我認爲通過使用socket.io-client,我會避免池化行爲,但它不起作用。難道我做錯了什麼? 我簡化了循環順便說一句,我實際上確保創建之間有一個延遲,以避免同步心跳。
想法?