Я разрабатываю мобильное приложение, которое использует Discourse для получения (GET) и отправки (POST) данных. В данный момент я делаю запрос каждые 30 секунд, чтобы проверить, появились ли новые посты в теме. Это, возможно, может навредить нашему форуму, случайно вызвав DDoS-атаку на самих себя.
Я искал хорошее решение с использованием WebSockets в Flutter, но пока безрезультатно. Для Discourse я наткнулся на MessageBus, но его документация запутанная.
Тем не менее, у нас уже настроен MessageBus на форуме, как видно из этого запроса опроса:
Так что мой вопрос: есть ли у кого-то идеи, как решить эту проблему, и есть ли опыт использования MessageBus или Flutter WebSockets?
Однако более простое решение, вероятно, — использовать функцию WebHooks в Discourse. В этом случае Discourse будет отправлять веб-запрос на ваш конечный пункт каждый раз, когда создаётся новая тема или публикация. Дополнительную информацию можно найти здесь:
Не вижу, каким образом вебхуки могут быть связаны или полезны для фронтенда на Flutter.
Кажется, что OP ищет реализацию клиента MessageBus на Dart… которую, вероятно, придётся реверс-инжинирить из этого JavaScript-кода. Альтернативой может быть запуск JavaScript-кода внутри Dart с последующей обёрткой в биндинги для трансляции из JavaScript в Dart. Прямой порт на Dart должен быть более производительным из этих двух вариантов.
Кто-нибудь, пожалуйста, поправьте, если я не прав. Я не углублялся в эту тему, но идея фронтенда на Flutter кажется мне увлекательной.