Hallo,
ich habe mir bereits schon diverse Berechnungsstrategien angesehen, wie man in einer Community den Online-Status anderer Benutzer zB seiner Buddy anzeigen lassen kann.
Mein Ansatz:
1. Bei Login speichere ich immer den aktuellen Timestamp (in der DB)
2. Wenn sich der User ausloggt, setze ich den Timestamp auf 0
3. Wenn sich der User wieder einloggt, prüfe ich vor den Schreiben
des TimeStamps ob er auf 0 steht - falls nicht Meldung "Nicht abgemeldet!"
4. Wenn ein User eingeloggt ist, speichere ich den Timestamp in der Session und vergleiche bei jedem Seitenaufruf, ob 5 min vorbei sind, falls ja aktualisiere ich den Timestamp in der Datenbank und in der Session.
5. Wenn ich den Online-Status der Buddy-Liste ausgeben, errechne ich ob der DB-Timestamp+5 min < aktueller Timestamp ist. Falls ja, ist der User offline (auch bei 0), falls nein, ist der User online.
Wie ist das Update (alle 5 min) aus Performacegründen zu bewerten...
Gibt es bessere Strategien... Ideen? Umsetzungen?
Danke für eine Tipp!
ich habe mir bereits schon diverse Berechnungsstrategien angesehen, wie man in einer Community den Online-Status anderer Benutzer zB seiner Buddy anzeigen lassen kann.
Mein Ansatz:
1. Bei Login speichere ich immer den aktuellen Timestamp (in der DB)
2. Wenn sich der User ausloggt, setze ich den Timestamp auf 0
3. Wenn sich der User wieder einloggt, prüfe ich vor den Schreiben
des TimeStamps ob er auf 0 steht - falls nicht Meldung "Nicht abgemeldet!"
4. Wenn ein User eingeloggt ist, speichere ich den Timestamp in der Session und vergleiche bei jedem Seitenaufruf, ob 5 min vorbei sind, falls ja aktualisiere ich den Timestamp in der Datenbank und in der Session.
5. Wenn ich den Online-Status der Buddy-Liste ausgeben, errechne ich ob der DB-Timestamp+5 min < aktueller Timestamp ist. Falls ja, ist der User offline (auch bei 0), falls nein, ist der User online.
Wie ist das Update (alle 5 min) aus Performacegründen zu bewerten...
Gibt es bessere Strategien... Ideen? Umsetzungen?
Danke für eine Tipp!
Kommentar