首页 > 解决方案 > 可以将 Socket.IO 客户端设置为不阻止 NodeJS 退出吗?

问题描述

是否可以创建一个不会阻止 NodeJS 进程退出的 Socket.IO 客户端连接?默认情况下,如果连接打开,则 NodeJS 进程将保持运行,但在某些情况下,进程不等待连接关闭会很有用。

我会想象与 NodeJS 超时类似的用法;您可以unref()在其中调用 Timer 以阻止它阻止进程退出。

标签: node.jssocket.io

解决方案


更新

从第 4 版开始,这已经成为可能!只需传递autoUnref选项,然后打开的套接字将不会保持 NodeJS 进程运行。

代码示例:

const socket = io({
  autoUnref: true
});

文档:

https://socket.io/docs/v4/migrating-from-3-x-to-4-0/#autounref-option

还要感谢@Gajus 在我忘记时添加了代码片段!只是为了保持一致而更新它。


旧答案

答案似乎是:没有。

所以我打开了几个 PR 来添加这个功能 :)

https://github.com/socketio/engine.io-client/pull/652

https://github.com/socketio/socket.io-client/pull/1442

如果他们被接受,我会用示例用法更新它。


推荐阅读