首页 > 解决方案 > 节点 IPC 如何在 2 个进程之间工作

问题描述

使用 nodejs fork,您可以在父进程和子进程之间执行 IPC。以前我的印象是子进程会有一个带有文件描述符的额外环境变量。我打印了进程环境,但我看不到任何带有文件 ID 的变量,我也看不到任何打开的套接字,所以我的问题是节点 IPC 在幕后如何工作?

标签: node.jsipc

解决方案


所以我的问题是节点 IPC(用于分叉进程)如何在幕后工作

fork的源代码在内部使用了一个 Pipe 对象。进一步查看Pipe 对象,它是 libuv Pipe 对象的包装器。然后,查看libuv,它的 Pipe 抽象是 Unix 上的域套接字和 Windows 上的命名管道。

现在,由于这都是未记录的实现细节,没有什么说它必须在未来总是这样做——尽管除非有一个非常好的理由,否则人们不会期望它会改变。


推荐阅读