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