rednaZ
Neues Mitglied
Wie kann ich serverseitig überprüfen, ob in einem Webbrowser die (noch) Webseite offen ist, d. h. der Nutzer noch online ist? Wie kann ich serverseitig überprüfen, ob ein Client (identifizierbar über SESSION) noch auf einer Website ist, d. h. der Browser noch geöffnet ist, und es dann auf der gleichen Website anzeigen (beispielsweise in einem Web-Chat). Mein Ansatz ist, dass jeder Webbrowser im Hintergrund clientseitig ein Javascript regelmäßig (2-Sek.-Interval) ausführt, welches per AJAX ein PHP-Script aufruft. Dieses PHP-Script identifiziert serverseitig den Client und speichert ihn und den aktuellen Unix-Timestamp auf dem Server ab (Textdatei, Datenbank, etc.). Währenddessen fragt ein anderes clientseitiges Javascript (welches ebenfalls jeder Webbrowser ausführt) via AJAX ein PHP-Script ab, welches für jeden identifizierten Client den gespeicherten Zeitstempel mit dem aktuellen abgleicht und falls er höchstens zwei Sekunden abweicht, zurück meldet, dass der User online sei (und andernfalls den Datensatz löscht, sodass er nicht jedes mal wieder überprüft wird). Aber ist das der richtige/professionelle Weg? Schließlich ist er ziemlich Ressourcen-fressend. Es gibt bestimmt eine allgemein bekannte Lösung (wie wird's beispielsweise hier auf html.de gemacht?)... Wie würdet ihr's machen?