Node.js 套接字IO发出服务器阻塞

Node.js 套接字IO发出服务器阻塞,node.js,socket.io,Node.js,Socket.io,我在ec2实例上运行了节点服务器。当用户执行任何操作时,我发出一个事件。此套接字是否会阻止服务器I/O操作 例如,我在一个时刻连接了10000个用户,在一个操作中,我必须向所有连接的用户发送一条消息,这是否会阻止我的网络I/O进行其他操作?当然。Nodejs是单线程的 你能展示代码吗,或者你所说的内容的一个最小的表达?您可能希望将其封装在某种类型的Promise dispatcher中,如Promise.each或Promise.all,以避免在大量调用上干扰您的进程。我只是发出类似io.emi

我在ec2实例上运行了节点服务器。当用户执行任何操作时,我发出一个事件。此套接字是否会阻止服务器I/O操作


例如,我在一个时刻连接了10000个用户,在一个操作中,我必须向所有连接的用户发送一条消息,这是否会阻止我的网络I/O进行其他操作?

当然。Nodejs是单线程的

你能展示代码吗,或者你所说的内容的一个最小的表达?您可能希望将其封装在某种类型的Promise dispatcher中,如
Promise.each
Promise.all
,以避免在大量调用上干扰您的进程。我只是发出类似io.emit的东西(emitMatchLobbyID,{data:'update'});但我有大约10000个连接到系统的用户正在收听这个节目。那么它会阻止我在服务器上的其他操作吗?10000次呼叫需要多长时间?正如Sergey所说,Node.js是单线程的,所以除非你把它分成更小的块,否则你会阻塞你的节点进程。所以每次调用都需要1-2秒。但节点不是异步的吗?它将接受其他请求,当对每个请求进行回调时,它将返回响应。