【发布时间】:2022-04-19 00:34:25
【问题描述】:
我想将WAMP 协议用于使用 websocket 的 RPC 和 Pub/Sub。特别是,我对使用 crossbar.io 作为 WAMP 服务器很感兴趣。
我阅读了 WAMP 的规范,但不清楚是否可以将数据流作为来自客户端的 RPC 调用的一部分。不过,似乎有 support 用于从服务器流式传输结果。
编辑:我想澄清一下,我指的是可以称为渐进式请求的东西,而不是简单地充当客户端的服务器。
【问题讨论】:
我想将WAMP 协议用于使用 websocket 的 RPC 和 Pub/Sub。特别是,我对使用 crossbar.io 作为 WAMP 服务器很感兴趣。
我阅读了 WAMP 的规范,但不清楚是否可以将数据流作为来自客户端的 RPC 调用的一部分。不过,似乎有 support 用于从服务器流式传输结果。
编辑:我想澄清一下,我指的是可以称为渐进式请求的东西,而不是简单地充当客户端的服务器。
【问题讨论】:
今天(2015/05),WAMP 有渐进式结果,但没有渐进式请求。
WAMP 的开发(嗯,现在仍然是)由用例驱动。我们有一个渐进式结果的用例,但没有渐进式请求。此外,渐进式请求的工作方式并不是完全即时的。
【讨论】:
服务器和客户端在 WAMP 中是平等的。传统意义上的客户端(例如浏览器)可以为传统意义上的服务器提供一个调用过程,这可以使用渐进式调用结果。
【讨论】:
您应该能够通过简单地进行多次调用并使用某种排序/分块将数据拆分到多个调用中来相当容易地模拟这一点。或者,您也可以致电预期的接收者,让他们知道数据已准备就绪,然后让接收者发起呼叫,然后利用渐进式呼叫结果。
【讨论】:
WAMP 不支持此功能。出于这个和其他原因,我编写了RPEP 协议。 RPEP 具有三种模式:发布/订阅模式(称为“fireAndForget”)、普通 RPC 模式和均匀流模式。在第 3 种模式中,您调用一个命令,该命令返回一个发出事件的流。这里有一个 javascript(web 和 node.js)的实现:https://github.com/Tixit/rpep.js
【讨论】: