【问题标题】:Is it possible to do a streaming RPC call using WAMP?是否可以使用 WAMP 进行流式 RPC 调用?
【发布时间】:2022-04-19 00:34:25
【问题描述】:

我想将WAMP 协议用于使用 websocket 的 RPC 和 Pub/Sub。特别是,我对使用 crossbar.io 作为 WAMP 服务器很感兴趣。

我阅读了 WAMP 的规范,但不清楚是否可以将数据流作为来自客户端的 RPC 调用的一部分。不过,似乎有 support 用于从服务器流式传输结果。

编辑:我想澄清一下,我指的是可以称为渐进式请求的东西,而不是简单地充当客户端的服务器。

【问题讨论】:

    标签: crossbar wamp-protocol


    【解决方案1】:

    今天(2015/05),WAMP 有渐进式结果,但没有渐进式请求。

    WAMP 的开发(嗯,现在仍然是)由用例驱动。我们有一个渐进式结果的用例,但没有渐进式请求。此外,渐进式请求的工作方式并不是完全即时的。

    【讨论】:

    • 您能否进一步说明渐进式请求的含义不是立即的?您是否愿意讨论我们的用例,也许是离线?
    【解决方案2】:

    服务器和客户端在 WAMP 中是平等的。传统意义上的客户端(例如浏览器)可以为传统意义上的服务器提供一个调用过程,这可以使用渐进式调用结果。

    【讨论】:

    • 当然可以,但我的问题是浏览器或其他客户端是否可以使用数据流(例如音频)发起呼叫?此外,这种情况下的服务器能否提供基于渐进式请求的渐进式结果?
    【解决方案3】:

    您应该能够通过简单地进行多次调用并使用某种排序/分块将数据拆分到多个调用中来相当容易地模拟这一点。或者,您也可以致电预期的接收者,让他们知道数据已准备就绪,然后让接收者发起呼叫,然后利用渐进式呼叫结果。

    【讨论】:

      【解决方案4】:

      WAMP 不支持此功能。出于这个和其他原因,我编写了RPEP 协议。 RPEP 具有三种模式:发布/订阅模式(称为“fireAndForget”)、普通 RPC 模式和均匀流模式。在第 3 种模式中,您调用一个命令,该命令返回一个发出事件的流。这里有一个 javascript(web 和 node.js)的实现:https://github.com/Tixit/rpep.js

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-08
        • 2018-09-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多