【发布时间】:2019-01-12 15:02:13
【问题描述】:
我正在使用 Caolan 的 Node JS、Socket.io 和 Async 模块开发一个应用程序。
我想问一些关于向大量客户端发出的问题,以及它是否会阻塞事件循环。
为了在我的应用程序中使用,我需要堆叠套接字(连接的客户端信息),并管理我需要发送给谁。
因此,一旦我知道我需要向谁发送数据,我就会使用 Async.each 循环访问客户端以向客户端发送数据。
例子:
async.each(clientsIds,
function(item,cb)
{
clients[item].emit('sendData', datas);
cb();
},
function(err)
{
}
);
所以我的问题是:如果我连接了 1000000 个客户端,当我发送数据时它会阻塞事件循环直到它完成向所有客户端发出吗?
当我单独连接,并尝试向自己发出 1000000 次时,它会阻塞事件循环,直到函数完成运行。是因为我将它发送 1000000 给相同的客户端,还是如果它是 1000000 个不同的连接客户端,结果会相同?
如果有人可以帮助我,请提前感谢!我无法对大量连接的客户进行测试以自己确认。
(对不起,如果这是一个菜鸟问题,我不是专业人士)
【问题讨论】:
标签: node.js loops asynchronous events socket.io