4

您可能知道,ZeroRPC 文档很少。我无法在 Python 服务器和 Node 客户端之间进行流式传输。

这是Python方法:

@zerorpc.stream
def PublishWhaterver(self, some_args):
    yield "love"
    yield "stack"
    yield "overflow"

这是节点调用:

export const tryStream = () => {
      connectedZerorpcClient.invoke('PublishWhatever', (error, res, more) => {
      console.log('STREAM', res, more);
  });
};

此代码将记录“STREAM love”,然后什么也不做。

所以这是我的问题:

  • 在 Python 服务器代码中,我是否应该PublishWhatever使用相关的 args 进行调用以产生附加值?
  • 在 Node 客户端中,当有更多数据时,我应该调用一些递归函数吗?

我试图实现的是一个 Pub/Sub 系统,但现在似乎只存在于 Python 服务器和 Python 客户端,没有 Node 示例。

主页上的示例和测试也不相关,它显示了如何在invoke调用方法时流式传输已经存在的数组。这里的消息是在一些繁重的计算过程中生成的,我希望服务器能够告诉客户端“这里,一些数据已经准备好”并且永远不会断开连接。

4

1 回答 1

3

好吧,ZeroRPC积极宣传,它使用自己的 python 实现代码作为自我说明事情是如何工作的。换句话说,没有人花费如此多的额外精力来发布以用户为中心的文档,而不是以学习过程为中心的文档。

无论如何,尽量遵守 ZeroRPC 描述中的几个“可见”语句。

@zerorpc.stream
def PublishWhaterver(self, some_args):
    yield ( "love", "stack", "overflow", ) # one, tuple-wrapped result-container
于 2018-03-13T02:23:20.650 回答