Sembauke
(Sem Bauke)
1
皆さん、こんにちは。
Discourse を使用してデータの取得と POST を行うモバイルアプリケーションを作成しています。現在、トピックに新しい投稿があるかどうかを確認するために 30 秒ごとにリクエストを行っています。これは、誤って自分たちで d-dos してしまう可能性があり、フォーラムに悪影響を与える可能性があります。
Flutter で WebSockets を使用する良い解決策を探していましたが、まだ見つかっていません。Discourse については、ドキュメントが分かりにくい MessageBus に行き着きました。
しかし、このポーリングリクエストで見られるように、フォーラムには MessageBus がセットアップされています。

そこで、この問題を解決する方法についてアイデアがある方や、MessageBus または Flutter WebSockets の使用経験がある方がいらっしゃいましたら、ご教示ください。
「いいね!」 1
david
(David Taylor)
2
MessageBus も選択肢の1つです。Ruby と JS のクライアントライブラリはここで見つけることができます: GitHub - discourse/message_bus: A reliable and robust messaging bus for Ruby and Rack
しかし、おそらくより簡単な解決策は、Discourse の WebHooks 機能を使用することです。これにより、新しいトピック/投稿があるたびに Discourse がエンドポイントにウェブ要求を行うことができます。詳細については、こちらをご覧ください。
「いいね!」 5
bitmage
(Brandon Mason)
3
FlutterフロントエンドとWebhookがどのように関連し、役立つのか理解できません。
OPが探しているのは、MessageBusクライアントのDart実装のようです。これはおそらく、このJavaScriptコードをリバースエンジニアリングする必要があるでしょう。別の代替案として、Dart内でJavaScriptコードを実行し、それをJavaScriptからDartに変換するバインディングでラップすることが考えられます。Dartへの直接移植が、これら2つのうちよりパフォーマンスが良いでしょう。
もし私が間違っていたら、誰か訂正してください。これは私が深く掘り下げたものではありませんが、Flutterフロントエンドというアイデアは興味深いと思います。
「いいね!」 3
david
(David Taylor)
4
アイデアは、Webhook → バックエンド → アプリ、という流れです。そのため、アプリが直接 Webhook を受信することはありません。
「いいね!」 4