1

75,000を超えるユーザーがリストされているOpenfireJabberサーバーがあります。そのうち、150以上が一度にオンラインになります。

現在ログインしているユーザーのJID(ユーザー名)を収集できる場所はありますか?基になるデータへの完全なデータベースアクセス権がありますが、サーバーが現在のステータスをDBに書き戻しているようには見えません。ユーザー数が多いため、名簿は使用されていません。

返される非常に便利なデータセットは、1行に1つのJID、オプションでログイン時間、およびそのアカウントが[メッセージの送信など]アクションを最後に実行した単純な(パスワードで保護された)Webページからのものです。後者の2つはそれほど重要ではありませんが、データや、ユーザーセッションに関して利用可能なその他の情報が利用できる場合に役立ちます。

4

2 に答える 2

2

これが役立つかどうかはわかりませんが、私は同様の機能を探してそれに遭遇しました。XEP-0045 http://xmpp.org/extensions/xep-0045.html#disco-roominfoで定義されているとおり:

実装は、その情報が公開されている場合は既存の居住者のリストを返す場合があり、この情報が非公開になっている場合はリストをまったく返さない場合があります。実装と展開では、このような情報共有をデフォルトでオフにすることをお勧めします。

したがって、Openfireでアドバタイズされたとおりに機能することを確認する必要があります(遭遇したすべてのxmppサーバーにはバグが1つか2つあります)。結果を得るには、いくつかのロジックをコーディングする必要があると思います。

幸運を。

于 2012-05-17T01:11:48.597 に答える
1

完全な答えではありませんが、必要なクエリはおそらく session-summary.jsp ページに埋め込まれています。http://localhost:9090/session-summary.jspにあるローカルにホストされたサーバーでアクセスしました。私が知らないのは、それがクエリ可能なデータベースに保存されるのか、それともクライアントに内部的に保存されるのかということです。後者の可能性が高いです。

ページに表示されるデータは、名前、リソース、ステータス、プレゼンス、優先度、クライアント IP、およびクローズ接続です。

于 2009-11-04T18:11:00.753 に答える