【问题标题】:Mimic ZeroMQ SUB-Socket (in a PUB/SUB system) with e.g. Socket/WebSocket in Flutter模仿 ZeroMQ SUB-Socket(在 PUB/SUB 系统中),例如Flutter 中的 Socket/WebSocket
【发布时间】:2022-04-20 04:12:10
【问题描述】:

社区,

我想在实现 ZeroMQ 的服务器上 use/subscribe pub-socket (https://zeromq.org/)

我的最终产品将是一个颤振应用。它必须在 Android/iOS/Windows/MacOS/Linux/Web 上运行。所以我对插件的选择非常小心。我不想让自己负担大量特定于平台的代码,我也不想依赖在每个平台的特定条件下可能break 的插件。

我知道有一个ZeroMQ-Plugin,但是在不同平台的可操作性方面它有一些Unresolved Issues。我还尝试在不同的 Windows 机器上运行它,但它只在大约 25% 的情况下有效。

这是应用程序和服务器之间的基本网络通信(见下图)。

是否可以在不实现或依赖 ZeroMQ 的 C++ 编译文件的情况下连接到 ZeroMQ-Publisher-Socket?我在考虑SocketWebSocket,但我什至不确定它在技术上是否可行(协议等),因为我认为 ZeroMQ 使用它自己的协议(请验证)。

我可以在 Flutter 中使用 SocketsWebSockets 订阅 ZeroMQ-Publisher-Socket 吗?如果是,如何?有替代品吗?

dartzmq/安装

最好的问候

【问题讨论】:

    标签: flutter dart networking tcp zeromq


    【解决方案1】:

    Q1:
    “是否可以在不实现或依赖 ZeroMQ 的 C++ 编译文件的情况下连接到 ZeroMQ-Publisher-Socket?” p>

    A1:
    是的。重新实现与用例相关的已发布 ZeroMQ ZMTP RFC-s 就足够了,如果它满足所有 ZMTP RFC-s 的强制要求,则无论实现语言/部署生态系统如何,您的代码都被授予可互操作的要求。所以是可行的。

    Q2:
    “... ZeroMQ 使用它自己的协议(请验证)。”

    A2:
    不,在 OSI-ISO-L2/L3 堆栈的意义上。
    是的,在更高层的应用程序驱动协议的意义上,其中 ZMTP RFC -s 适用于大部分 ZeroMQ Scalable Formal Communication Patterns' Archetypes(可以在 ZeroMQ sockets are not sockets as you know them 上阅读更多内容),但也有与 O/S 普通套接字接口的工具 fd-s,在需要的地方。此处仍适用 A1。

    Q3:
    “我可以使用 ... 订阅 ZeroMQ-Publisher-Socket 吗?如果可以,如何?”

    A3:
    是的,当您的代码遵循已发布的 ZMTP RFC-s 时,这是可能的。实现所有 ZMTP RFC-s 的强制属性,并授予您与任何其他 ZeroMQ-ZMTP-RFC-s 兼容节点的互操作性。

    Q4:
    “有替代品吗?”

    A4 :
    是的,如果您的设计可以扩展服务器端,则在那里添加另一个 AccessPoint-s,使用 ZMQ_STREAM Scalable Formal Communication Archetype 可能会减少您的 Flutter 端需要 ZMTP RFC-s 的范围,因为与原生普通套接字的接口将是唯一需要处理的接口,并且其“功能差距”可以在链接的服务器端处理(轻松处理所有订阅管理和消息过滤,那必须符合 ZeroMQ ZMTP RFC-s,所以为什么不在将下游连接到 Flutter App 之前将其串联到服务器端 - 很聪明,不是吗?)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      • 2015-04-21
      • 2013-06-20
      相关资源
      最近更新 更多