2017-06-09 17 views
2

拡散インスタンス内のすべてのトピックのリストを取得しようとしています。私は複数の根本的な話題を持っていますが、そのすべてに独自の子トピックがあります。私はちょうどその階層を持つサーバー上のものを取得する必要があります。私はこれについて拡散サポートに連絡してきました、そして、彼らはJS APIにそのようなメソッドがないことを私に通知しました。これはまったく実行可能ですか?JS Unified Apiを使用してトピックのリストを取得する

私は今すぐ拡散5.9のビルドに入っています。

+0

マイケルを支援したいと思います。ユースケースを少し詳しく説明できますか? –

+0

@MartinCowie私たちはすべて独自の階層を持つ複数のルートトピックをホストしています。ほとんどのトピックは単一価値のトピックです。私のJSクライアントから、拡散クラスターに接続した後はいつでも、まずルートトピックのリストを取得し、次にそれぞれの子リストを取得する必要があります。問題は、トピック名が別のソースによって生成されたときに、どのトピックが存在するかを決して知らないことです。これにはルートトピック名も含まれます。だから、私はこれらのトピックをどのように取り出すことができるかを調べています。私は拡散コンソールのJSファイルを(展開フォルダ内で)試してきましたが、正直なところ失われました。アイデア? –

+0

マイケルありがとう - 私たちにはいくつかの解決策があり、最適なものを探したい。 [email protected]にメールをお送りください。メールと電話で会話を続けられます。 –

答えて

5

バージョンv5.9には、トピックツリーを列挙するAPIがありませんが、将来のバージョンには1つが含まれます。コンソールは、文書化されていないプロトコルを使用し、変更される可能性があります。

実際のイベントを反映するためにトピックが作成されたり削除されたりするため、トピックセットはほとんど静的ではないため、離散トピックを列挙したり購読したりするのは珍しいことです。より多くの場合、ソリューションの実装者は、対象のトピックブランチを特定し、a topic-selectorを使用して、そのトピックおよびすべての子孫にサブスクライブします。 ?foo//を購読すると、ルートトピックfooと現在および将来の子孫トピックの両方が識別されます。

ルートトピックの特定についての質問には、多くのアプローチがあります。

  1. ルートトピックは、クライアントが別のクライアントが待機しているトピックパスにリクエストを送信し、ルートトピックのセットを要求するクライアント
  2. に焼いています。
  3. 通常、クライアントは積極的にトピックを購読しません。代わりに、制御クライアントは、認証時に使用されるプリンシパルに応じて、クライアントを必要なトピックのセットにサブスクライブします。制御クライアントは、session properties listenerを介してクライアントの新しいセッションを認識します。
関連する問題