我有一个使用 Socket.IO 进行消息传递的节点应用程序。
我运行它使用
node --expose_gc /path/to/app.js
现在,当我检查该htop
实用程序时,我注意到不是 1,而是同一命令的多个进程。
有人可以用菜鸟的话向我解释为什么以及这里发生了什么吗?我也担心它也可能会消耗意外的内存/cpu 使用率。
socket.io 不会派生或派生任何子进程。通常运行 node.js 的子进程是通过集群模块产生的,但 socket.io 没有这样的事情。它只是在 http 服务器之上添加了一个处理程序。
socket.io 只是一个挂钩到 Web 服务器并侦听某些传入请求(那些启动 webSocket/socket.io 连接的请求)的库。一旦启动了 socket.io 连接,它只使用普通的套接字编程来发送/接收消息。
它不会自行启动任何其他进程。
您的多个进程要么是因为您不小心多次启动了自己的应用程序而没有将其关闭,要么是因为您的应用程序中有其他东西正在启动多个进程。socket.io 不这样做。