是否可以将 Socket.IO 客户端设置为不阻止 NodeJS 退出?



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

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

更新

从版本 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

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

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

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

最新更新