使用 ZeroRPC 进行流式传输

Streaming with ZeroRPC

如您所知,ZeroRPC 文档很少。我无法让 Python 服务器和 Node 客户端之间的 Streaming 正常工作。

这里是 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",然后什么都不做。

所以这是我的问题:

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

主页上的示例和测试也不相关,它显示了如何在 invoke 方法为 called.Here 消息时流式传输已经存在的数组 在一些繁重的计算过程中生成消息, 我希望服务器能够告诉客户端 "here, some data are ready" 并且永不断开连接。

好吧,ZeroRPC 积极宣传,它使用自己的 python 实现代码作为 self-documentation 工作方式。换句话说,没有人花费如此额外的努力来发布 user-focused,越少 learning-process 重点文档。

无论如何,请尽量遵守 ZeroRPC 描述中的少数 "visible" 声明。

@zerorpc.stream
def PublishWhaterver(self, some_args):
    yield ( "love", "stack", "overflow", ) # one, tuple-wrapped result-container