是否可以创建一个不阻止 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