我在某处看到了这段代码,它可以关闭所有现有的打开套接字
if (io && io.sockets && io.sockets.sockets) {
io.sockets.sockets.forEach(function(s) {
s.disconnect(true);
});
}
当进程处于 sigterm
或 sigint
上时,我调用此方法
但不知何故,在按 ctrl+c 并运行代码后,后台仍然有一个现有的 Node 进程在运行 ps -A | grep Node
我有这个输出
3605 pts/0 00:00:00 node
如何关闭此套接字而不需要终止它?
如果您需要更多信息,请告诉我,我很乐意编辑我的问题,谢谢!
编辑: 我意识到套接字有时可以断开连接,但是当我的代码发生更改时, Node (特别是nodemon)会在特定套接字(最近断开连接)处重新连接,并将应用我所做的更改。所以问题是如何防止套接字在断开连接后重新连接?我需要在上面的代码中添加什么来实现该目标?
最佳答案
当您运行此命令时:
ps -A | grep node
如果你看到一个进程,那么这就是你的 grep 进程。当您调用 grep 时,它会创建 grep 进程,在输出中显示所有匹配的进程(也是 grep 进程),并在最后关闭 grep 进程。
关于node.js - 如何使用socket.io和NodeJS关闭所有套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33151299/