3

实际上我正在通过子进程进行 sanboxing。我正在使用 vm.runincontext 方法来运行脚本。我正在使用 child.stdin.write 将代码传递给子进程,并使用 stdin.on('data' function()) 在子进程中接收...现在我想要的是脚本可以访问一些 node.js 对象或用户定义的对象通过上下文,该上下文将动态传递给子进程,它将在该上下文中运行 sanbox。目前我正在子进程中创建上下文对象,但我不想将上下文对象传递给子进程。

4

2 回答 2

3

考虑一下你在问什么。您不仅必须序列化当前执行上下文,还必须序列化所有其他上游上下文、整个全局命名空间、文件描述符......

换句话说,这将是大量的工作,而你不能。:-)

您可以做的是序列化数据并通过标准输出/标准输入句柄来回发送。这就是通常解决此问题的方法。

希望有帮助。

于 2012-06-20T21:06:25.017 回答
1

一般来说,你不能真正做这种事情,因为基本上你正在尝试跨进程共享数据(即内存),这是一个很大的禁忌

但是使用 nowjs 可以让你非常接近。查看 nowjs 并将所有进程与它挂钩

于 2012-06-19T14:23:50.360 回答