sql >> Databáze >  >> RDS >> Mysql

Jaký je nejjednodušší způsob, jak zjistit, zda je uživatel online? (PHP/MYSQL)

Neobtěžujte se zjišťováním rozdílů mezi časovými pásmy. To není nutné.

Kdykoli uživatel přistoupí na stránku, aktualizujte pole v jeho záznamu v tabulce Uživatelé při poslední aktualizaci. Poté proveďte dotaz pro všechny uživatele, kteří mají čas poslední aktualizace během posledních 5 minut. Cokoli víc než toto a jsou považovány za „offline.“

Pokud používáte svůj serverový čas, přes funkci NOW() v MySQL, vynecháte počítání rozdílů mezi časovými pásmy.

Toto je standardní způsob sledování počtu uživatelů, kteří jsou aktuálně online (což znamená, že jsou aktivní během posledních několika minut).

Neustále aktualizováno

Pokud byste chtěli vědět, že jsou stále aktivní, i když nepřeskakují ze stránky na stránku, zahrňte trochu javascriptu do pingu vašeho serveru každých přibližně 60 sekund, abyste věděli, že jsou stále naživu. Bude to fungovat stejně jako můj původní návrh, ale aktualizuje vaše záznamy, aniž by museli zběsile procházet váš web alespoň jednou za pět minut.

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


  1. Jak získat vstup od uživatele za běhu

  2. MYSQL last_insert_id() a souběžnost

  3. Materializovaný pohled v mysql

  4. Návratová hodnota uložené procedury MySQL