使用 RPC 时如何添加方法?

How to add methods when working with RPC?

我正在处理远程过程调用,为此我正在使用一个名为 node-jet 的库。我可以添加方法并可以远程获取 运行 它们,但我想问一下我是否也可以远程添加方法?我向图书馆开发人员提出了这个问题,但得不到答案,也许这里有人可以帮助我。

fn 是我的函数,peer 是我的 peer

   var method = new jet.Method(`${this.basePath}` + '/methods/' + method)
  .on('call', fn) //function (args) {})
  peer.add(method)

据我了解,

您正在寻找双向 RPC,目前正在尝试使用 node-jet 来实现它,node-jet 可能提供也可能不提供。这意味着您可能必须在 node-jet 之上手动滚动您自己的解决方案作为传输。

相反,您可以尝试 Octopus,作为您的 RPC 层...可以独立使用,也可以在 node-jet 之上。

我构建它是为了在 socket.io 和节点子进程上解决类似的用例。希望对您也有帮助!

要与 node-jet 一起使用,您需要构建一个小型自定义适配器来集成 node-jet 的推送协议。有关如何映射 socket.io、websockets 等的示例,请参阅存储库中的 stockTransports.js 文件。

只需要两个映射:

return {
  onRecv: // recieve function wrapper
  send:   // send function wrapper
}