使用 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",然后什么都不做。
所以这是我的问题:
- 在 Python 服务器代码中,我是否应该使用相关参数调用
PublishWhatever
以便它产生附加值?
- 在Node客户端中,当数据较多时是否应该调用一些递归函数?
我要实现的是一个 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
如您所知,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",然后什么都不做。
所以这是我的问题:
- 在 Python 服务器代码中,我是否应该使用相关参数调用
PublishWhatever
以便它产生附加值? - 在Node客户端中,当数据较多时是否应该调用一些递归函数?
我要实现的是一个 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