MessageBus - 如何使用 Dart-Flutter 设置 Messagebus

大家好,

我正在开发一个使用 Discourse 来获取和发布数据的移动应用程序。目前,我每 30 秒发送一次请求,以检查某个主题是否有新帖子。这似乎可能会因意外地对我们的论坛进行拒绝服务攻击(d-dosing)而对其造成损害。

我一直在寻找使用 Flutter 中的 WebSockets 的解决方案,但目前还没有找到。对于 Discourse,我发现了 MessageBus,但其文档令人困惑。

然而,正如在这个轮询请求中看到的,我们的论坛已经设置了 MessageBus:
image

所以我的问题是,是否有人知道如何解决这个问题,并且有使用 MessageBus 或 Flutter WebSockets 的经验。

1 个赞

MessageBus 是一个选项——您可以在此处找到适用于 Ruby 和 JS 的客户端库:GitHub - discourse/message_bus: A reliable and robust messaging bus for Ruby and Rack

但一个更简单的解决方案可能是使用 Discourse 的 WebHooks 功能。这样,每当有新主题/帖子时,Discourse 就可以向您的端点发出 Web 请求。您可以在此处找到更多信息:

5 个赞

我不知道 webhook 与 Flutter 前端有什么关系或用处。

看起来 OP 正在寻找 MessageBus 客户端的 Dart 实现……这可能需要从这段 Javascript 代码进行逆向工程。另一种选择可能是直接在 Dart 中运行 Javascript 代码,然后将其包装在绑定中,以便从 Javascript 翻译到 Dart。直接移植到 Dart 应该是这两种方法中性能更好的。

如果我错了,请有人纠正我。我还没有深入研究过这个问题,但我认为 Flutter 前端的想法很有趣。

3 个赞

这个想法是 Webhook → 你的后端 → 你的应用程序。所以,应用程序不会直接接收 webhook。

4 个赞