2009-04-17 7 views
1

Ich habe einen Openfire Jabber Server mit mehr als 75.000 Benutzern. Davon können 150 oder mehr gleichzeitig online sein.Welche Benutzer sind derzeit mit einem Openfire Jabber-Server verbunden?

Gibt es irgendwo, dass ich die JIDs (Benutzernamen) der derzeit angemeldeten Benutzer sammeln kann? Ich habe vollständigen Datenbankzugriff auf die zugrunde liegenden Daten, aber der Server scheint den aktuellen Status nicht in die Datenbank zurückzuschreiben. Aufgrund der Anzahl der Benutzer werden Dienstpläne nicht verwendet.

Eine sehr nützliche Datenmenge, die zurückgegeben wird, würde von einer einfachen (passwortgeschützten) Webseite mit einer JID pro Zeile sein, optional mit der Login-Zeit und vielleicht auch das letzte Mal, als das Konto eine Aktion ausgeführt hat [wie eine Nachricht senden ]. Die letzten beiden sind nicht so wichtig, wären aber nützlich, wenn die Daten verfügbar sind, sowie alle anderen Informationen, die bezüglich der Benutzersitzung verfügbar waren.

Antwort

1

Keine perfekte Antwort, aber die gewünschte Abfrage ist wahrscheinlich in die Seite session-summary.jsp eingebettet. Ich habe es auf einem lokal gehosteten Server unter http://localhost:9090/session-summary.jsp. Was ich nicht weiß, ist, ob das dann in der Datenbank gespeichert wird, wo es abfragbar ist, oder ob es intern im Client gespeichert ist. Letzteres ist wahrscheinlicher.

Die Daten, die auf dieser Seite angezeigt werden, sind Name, Ressource, Status, Anwesenheit, Priorität, Client-IP und Schließen der Verbindung.

+0

Das wäre eine Menge Seiten zu kratzen. Ich hoffe auf einen DB-Zugang, oder vielleicht Verbindung zum Server, um eine große Liste der aktuell eingeloggten JIDs zu bekommen, vielleicht mit den zusätzlichen Informationen wie oben. –

2

nicht wissen, ob dies hilft, aber ich rannte in die Suche nach ähnlichen Funktionen. Wie in XEP-0045 definiert http://xmpp.org/extensions/xep-0045.html#disco-roominfo:

Eine Implementierung kann eine Liste der vorhandenen Insassen zurück, wenn diese Informationen öffentlich zur Verfügung steht, oder gar keine Liste zurück, wenn diese Informationen privat gehalten wird. Implementierungen und Bereitstellungen sollten standardmäßig die Freigabe von Informationen deaktivieren.

So müssten Sie es funktioniert wie beworben auf Openfire (alle XMPP-Server kommen ive über haben einen Bug oder zwei in ihnen), um sicherzustellen, und ich denke, Sie müssten eine gewisse Logik codieren, um die Ergebnisse zu erhalten.

Viel Glück.