ホームページ >データベース >mysql チュートリアル >PHP と MySQL を使用してユーザーのオンライン ステータスをリアルタイムで確認する方法: 総合ガイド。
セッションと MySQL を使用してユーザーのオンライン ステータスを確認する方法
ユーザーがオンラインであるかどうかをリアルタイムで判断することは、さまざまなアプリケーションにとって重要です。この目的でセッションを使用するのは一般的なアプローチですが、時間ベースのしきい値に依存せずにユーザー アクティビティを正確に追跡する最適なソリューションを見つける必要があります。
これを実現する 1 つの方法は、Users の lastActiveTime フィールドを活用することです。テーブル。このフィールドは、ユーザーがページにアクセスするたびに更新できます。特定の時間枠 (過去 5 分など) 内で更新された lastActiveTime を持つユーザーのテーブルを定期的にクエリすることで、現在オンラインになっているユーザーを特定できます。
たとえば、MySQL の NOW() 関数を使用してサーバーを取得します。 -側時間により、タイム ゾーン間で一貫性が保証されます:
<?php $query = "SELECT COUNT(*) AS online_count FROM Users WHERE lastActiveTime >= NOW() - INTERVAL 5 MINUTE"; $result = mysqli_query($conn, $query); $row = mysqli_fetch_assoc($result); $onlineCount = $row['online_count']; ?>
ただし、継続的なユーザー アクティビティを追跡するには、60 秒ごとなどの定期的な間隔でサーバーに ping を送信する JavaScript の実装を検討してください。こうすることで、ユーザーがサイトをアクティブに移動していない場合でも、オンラインとしてマークされます。
fetch と Promise を使用した更新された JavaScript コード スニペットは次のとおりです。
<code class="js">(async function ping() { try { await fetch("stillAlive.php"); } catch (error) { console.error(error); } setTimeout(ping, 60_000); }());</code>
セッションとlastActiveTime フィールドを JavaScript ping メカニズムと組み合わせることで、時間ベースの基準に依存せずに、PHP および MySQL でユーザーのオンライン ステータスを効果的に判断できます。
以上がPHP と MySQL を使用してユーザーのオンライン ステータスをリアルタイムで確認する方法: 総合ガイド。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。