MessageBus — как настроить MessageBus с использованием Dart-Flutter

Всем привет,

Я разрабатываю мобильное приложение, которое использует Discourse для получения (GET) и отправки (POST) данных. В данный момент я делаю запрос каждые 30 секунд, чтобы проверить, появились ли новые посты в теме. Это, возможно, может навредить нашему форуму, случайно вызвав DDoS-атаку на самих себя.

Я искал хорошее решение с использованием WebSockets в Flutter, но пока безрезультатно. Для Discourse я наткнулся на MessageBus, но его документация запутанная.

Тем не менее, у нас уже настроен MessageBus на форуме, как видно из этого запроса опроса:
image

Так что мой вопрос: есть ли у кого-то идеи, как решить эту проблему, и есть ли опыт использования MessageBus или Flutter WebSockets?

MessageBus — это один из вариантов: клиентские библиотеки для Ruby и JS можно найти здесь: GitHub - discourse/message_bus: A reliable and robust messaging bus for Ruby and Rack · GitHub

Однако более простое решение, вероятно, — использовать функцию WebHooks в Discourse. В этом случае Discourse будет отправлять веб-запрос на ваш конечный пункт каждый раз, когда создаётся новая тема или публикация. Дополнительную информацию можно найти здесь:

Не вижу, каким образом вебхуки могут быть связаны или полезны для фронтенда на Flutter.

Кажется, что OP ищет реализацию клиента MessageBus на Dart… которую, вероятно, придётся реверс-инжинирить из этого JavaScript-кода. Альтернативой может быть запуск JavaScript-кода внутри Dart с последующей обёрткой в биндинги для трансляции из JavaScript в Dart. Прямой порт на Dart должен быть более производительным из этих двух вариантов.

Кто-нибудь, пожалуйста, поправьте, если я не прав. Я не углублялся в эту тему, но идея фронтенда на Flutter кажется мне увлекательной.

Идея заключается в следующем: вебхуки → ваш бэкенд → ваше приложение. Таким образом, приложение не будет получать вебхуки напрямую.