不是这个问题的重复: 这个问题,因为我正在尝试使用作为答案发布的链接来解决我的问题。 我正在创建一个小型虚拟套接字客户端来帮助测试我的某个产品,它看起来像这样:
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());
};
看起来它似乎将连接汇集在一起,只显示一个客户端。
根据这个链接,我以为使用socket.io-client可以避免汇集行为,但是它并没有起作用。我做错了什么吗?顺便说一下,我已经简化了循环,确保在创建之间有延迟以避免同步心跳。
有什么想法吗?