2009-04-30 11 views
1

Ich schreibe einen XMPP-Client in Java mit der Smack-API.XMPP Smack API RosterListener + Datenbank Änderung

ich registrierte für jeden Benutzer ein Register Zuhörer und die Smack-API-Aufrufe ...

public void entriesAdded(Collection arg0) {} 

... jedes Mal, wenn ein Register zusätzlich bemerkt.

Weiß jemand, ob dieser Listener ausgelöst wird, wenn sich die Datenbank ändert, aber nicht über die Smack API createEntry() -Methode?

Grundsätzlich möchte ich den XMPP-Client an eine Website binden. Wenn Sie jemanden zur Freundesliste der Website hinzufügen, möchte ich, dass die Website den Client benachrichtigt. Anstatt Sockets einzurichten oder PHP zu verwenden, um sich beim XMPP-Server anzumelden, hatte ich gehofft, dass nur das Ändern der Datenbank funktionieren würde.

Wird dies funktionieren oder gibt es eine andere Möglichkeit, dies zu handhaben, ohne dass der Client die Datenbank ständig nach Änderungen fragt?

Antwort

0

Das Ändern der Datenbank hat nichts mit Smack direkt zu tun, da es sich um eine Client-Bibliothek handelt. Es hat keine Datenbank. Die Datenbank wird vom Server verwendet und darauf zugegriffen, und je nach Server können Funktionen vorhanden sein, mit denen der Server Nachrichten senden kann, wenn die Datenbank geändert wurde. Ich weiß nicht, ob xmpp Server diese Funktion tatsächlich haben.

Sie sollten die Fähigkeiten des verwendeten Servers überprüfen und möglicherweise Erweiterungen im Server selbst verwenden, um die Dienstplaneinträge hinzuzufügen. Das direkte Ändern der Datenbank klingt nicht wirklich nach dem Weg, da der XMPP-Server und die Datenbank höchstwahrscheinlich nicht mehr synchron sind.

Für den Client, der die Datenbank abfragt, klingt es nicht nach einer guten Idee, dass der Client direkt auf die Datenbank zugreifen kann, wenn sie von einem XMPP-Server und möglicherweise von Ihrem Webserver verwendet wird.

Verwandte Themen