在node.js中的运行时启用和谐代理

Enable harmony proxies at runtime in node.js

本文关键字:启用 和谐 代理 运行时 node js      更新时间:2023-09-26

我有一个用于节点的小RPC库,现在它为远程对象使用和谐代理(如果它们可用)(通过检查Proxy全局的存在)。

我希望能够在运行时打开和谐代理,也就是说,在没有使用--harmony-proxy标志启动的节点进程中。这可能吗?

我知道有充分的理由不这样做,我真的不在乎:-p

EDIT正如答案中所指出的,node.js代理使用较旧的规范。我可以使用类似https://github.com/tvcutsem/harmony-reflect为了解决这个问题,但这仍然需要--harmony标志来启用底层代理支持,我想知道在没有--harmony标志的情况下启动的进程中,是否可以在运行时启用它。

Proxy的版本取决于您使用的是master还是v0.10。最新的稳定版(v0.10)使用3.14分支,而开发版(master)则使用v8 bleeding_edge(目前为3.20)。因此,更正确的问题是,"v8实现了什么版本的代理?"

代理实现的工作正在进行中,但它现在是一个移动的目标。在错误跟踪器中引用代理实现票证(http://code.google.com/p/v8/issues/detail?id=1543)看起来又一轮的变化即将到来。所以要小心即将到来的发展。

至于在应用程序中而不是在命令行中启用代理,我认为您必须编写一个本机模块并使用V8::SetFlagsFromString方法(https://github.com/v8/v8/blob/f281162/include/v8.h#L4341-L4344)。如果你需要一个例子,我可能会抽出时间做一个。

Node.js实现了一个旧的代理规范。不要使用它们。

https://groups.google.com/forum/?fromgroups=#!topic/nodjs/LPD8ut33 hg