Also das Problem, soweit ich das beurteilen kann, ist, dass wenn der Jabber-Benutzer am anderen Ende reagiert. Das Problem besteht zumindest teilweise darin, dass der Benutzer auf einen anderen Benutzer auf dem Jabber-Server reagiert, aber dem PHP-Skript bewusst sein soll, dass diese Antwort stattgefunden hat, ohne die Verbindung offen zu halten (was seit dem Skript Sinn macht) läuft wahrscheinlich nicht mehr).
Eine Option, wenn auch ein wirklich albern ist:
einen PHP-Skript, das eine Verbindung mit dem Jabber-Server für beide das Senden und Empfangen für den Benutzer auf Ihrer Seite Broker kann,
Verwendung AJAX Nachrichten für den Benutzer zu senden (das AJAX auf das obige Skript zeigen würde, würde das Skript die Nachricht senden.)
Haben Sie einen Javascript Endlosschleife, das das gleiche Skript je 10 Sekunden oder so Pings, Überprüfung im um zu sehen, ob es Nachrichten gibt. Wenn dies der Fall ist, werden sie an den Client zurückgegeben und an den Benutzer ausgegeben.
Es gibt nur zwei Probleme mit der oben:
1) Wenn der Benutzer nicht verbunden ist, wenn die Nachricht übertragen wird, wird der PHP-Skript noch die Meldung/bekommen?
2) Eine Client-seitige Schleife, die Ajax-Anfragen alle 3 Sekunden macht, wäre wahrscheinlich ein großer Abfluss.
Lösung 2:
OpenFire Jabber-Server. Es ist mit einem Web-Chat-Client ausgestattet und hat ein Addon namens Fastpath, das HTML-basierte Chats auf Client-Seite verarbeiten soll (wie die "Chat mit einem Agenten jetzt!" - Funktion auf zu vielen Support-Seiten).
Wir verwenden dies bei der Arbeit und es ist sehr anpassbar, kann mit anderen Skripten integriert werden (zum Beispiel, wenn Sie ein Skript wollen, das die Benutzerdetails von ihrem Login ausfüllt, oder einen benutzerdefinierten Avatar hinzufügt, oder was auch immer), und es (OpenFire) hat Tonnen von anderen Erweiterungen und Addons, die, wenn dies nicht das ist, was Sie wollen, sie haben wahrscheinlich, was Sie suchen.
Muss ich X php-Instanzen ausführen, wenn X-Benutzer online sind? –