sql >> Database >  >> RDS >> Mysql

Wat is de gemakkelijkste manier om te bepalen of een gebruiker online is? (PHP/MYSQL)

Doe geen moeite met het uitzoeken van de verschillen tussen tijdzones. Dat is niet nodig.

Telkens wanneer de gebruiker een pagina opent, werkt u een veld bij in hun record van de tabel Gebruikers laatst bijgewerkt. Voer vervolgens een query uit voor alle gebruikers die de laatste 5 minuten voor het laatst zijn bijgewerkt. Alles meer dan dit, en ze worden als 'offline' beschouwd.

Als je je servertijd gebruikt, via de NOW()-functie in MySQL, omzeil je het berekenen van verschillen tussen tijdzones.

Dit is de standaardmanier om bij te houden hoeveel gebruikers momenteel online zijn (dit betekent:actief in de afgelopen paar minuten).

Voortdurend bijgewerkt

Als je wilt weten dat ze nog steeds actief zijn, zelfs als ze niet van pagina naar pagina springen, voeg dan een beetje javascript toe om je server elke 60 seconden of zo te pingen om je te laten weten dat ze nog in leven zijn. Het werkt op dezelfde manier als mijn oorspronkelijke suggestie, maar het zal uw gegevens bijwerken zonder dat ze ten minste eens per vijf minuten verwoed op uw site moeten bladeren.

var stillAlive = setInterval(function () {
    /* XHR back to server
       Example uses jQuery */
    $.get("stillAlive.php");
}, 60000);


  1. Een zeer beschikbare database voor Moodle bouwen met MariaDB (replicatie en MariaDB-cluster)

  2. Hoe wijzig ik het standaardschema in sql developer?

  3. UPPER() Functie in Oracle

  4. Knee-Jerk Wait-statistieken:CXPACKET