message busのclient_idについて

こんにちは :wave:

最近、コードベースを調べて、/message-bus/{client-id}/poll エンドポイントのクライアント ID を特定しようとしました。このクライアント ID が正確に何を表し、どのように設定されるのかを説明する関連コードまたはドキュメントを教えていただけますでしょうか?

ご協力に感謝いたします!

「いいね!」 1

間違っているかもしれませんが、clientId は MessageBus が X メッセージを配信すべき相手を特定するために使用される可能性が高いです。

クライアントがサーバーに「ねえ、ID XYZ を持っているけど、私宛のメッセージはある?」と定期的に尋ねるような会話だと想像してください。

クライアント ID は、スクリプトがロードされるたびに自動的に生成されるようです(Discourse の場合、この生成された clientId がクライアントに永続化されるかどうかはわかりません)。

「いいね!」 1

message-bus を使用または理解しようとしていますか?

前者であれば、何を監視しようとしていて、何がうまくいかないのかを説明してください。私がやっていることは、GitHub - discourse/all-the-plugins のプラグインを MessageBusgrep することです。

「いいね!」 3

さらにコンテキストを提供するために、ディスコースホスティングで多数のメッセージバスのポーリング呼び出しが観測されています。クライアントIDと現在のユーザーとの相関関係があるかどうかを確認したいと考えています。そのような関連性が存在する場合、パターンを特定し、トラフィックを管理するための効果的なレート制限ルールを定義するのに役立つ可能性があります。

ほとんど理解できませんが、ブラウザの開発者ツールを見ると、開いているすべてのウィンドウがメッセージバスを定期的にポーリングしていることがわかります。これにより、ページをリロードせずに投稿の編集やメッセージ数の更新などが行われます。これは大量であることが予想されます。ランダムな数値をポーリングしているように見えるため、ユーザー(少なくとも私には)が(簡単に)どのユーザーであるかを判断できません。

はい - メッセージバスポーリング呼び出しが多いということは、多くの同時ユーザーがいることを表しており、各一意のクライアントIDはブラウザセッションを表します。

いいえ - これは必要なトラフィックであり、フォーラムが機能するために必要です。多く見られる場合は、成功の証でもあります!:+1:

「いいね!」 3