2016-05-09 7 views

Antwort

1

Wenn Sie Datenbanksitzungen verwenden, könnten Sie möglicherweise den Anmeldestatus mithilfe eines Aufrufs der Tabelle ci_sessions (oder wie auch immer Sie es benannt haben) überprüfen. Sie können dann eine einfache Abfrage verwenden, um zu überprüfen, ob sie innerhalb der letzten Stunde (oder was auch immer) gesucht haben, und sie als online validieren.

Beispiel-SQL-Abfrage für diese:

SELECT FROM_UNIXTIME(timestamp) AS 'timestamp' from ci_sessions 
WHERE timestamp > UNIX_TIMESTAMP(DATE_ADD(CURDATE(),INTERVAL -1 HOUR)) 
ORDER BY timestamp DESC 

Dies würde alle Benutzer aktiv in der letzten Stunde zurückkehren (der Zeitstempel col wird jedes Mal, wenn eine Seite aktualisiert angefordert wird)

Sie auch die greifen Benutzer Details aus der Spalte ‚Daten‘ ...

$this->session->all_userdata() 

werden alle Benutzer nicht zurück in Benutzer nur alle verfügbaren Daten des aktuellen angemeldeten angemeldet

+0

Diese Implementierung verwendet Sitzungsdaten – Joey

0

Sie müssen zusätzliches Feld in der Tabelle als "fld_userlogin" verwenden. Und verwalten Sie mit diesem Feld, wenn der Benutzer login fld_userlogin wird 1. andere weise 0. nach dem Logout fld_userlogin wird 0. Es ist sehr einfach zu vergleichen Sitzung. alles Gute

0

Sie könnten Web Sockets verwenden, da ich davon ausgehe, dass Sie sofortiges Feedback wünschen, wenn ein Benutzer online oder offline ist. Check out Ratchet (http://socketo.me/docs/hello-world), ich bin sicher, es gibt CI-Implementierungen, die dies oder etwas ähnliches verwenden. Kommt wirklich auf den Umfang deiner Chat-App an und wie schnell du Feedback willst.

Verwandte Themen