現在の位置: ホーム> 最新記事一覧> PHPを使用してライブチャットシステムを開発する方法:オンラインステータスディスプレイとオンライン番号統計機能

PHPを使用してライブチャットシステムを開発する方法:オンラインステータスディスプレイとオンライン番号統計機能

gitbox 2025-06-17

導入

リアルタイムチャットシステムは、最新のソーシャルプラットフォームの重要な部分になりました。 PHPは最も人気のあるWebプログラミング言語の1つであるため、この記事では、PHPを使用して、リアルタイムチャットシステムでオンラインステータス表示およびオンラインユーザー統計機能を実現する方法を紹介します。 PHPのセッションメカニズムを介してオンラインステータスを管理する方法と、タイマーを使用してオンラインユーザーをカウントする方法を詳細に説明します。

オンラインステータス表示

オンラインステータス表示は、チャットシステムの重要なインジケーターであり、ユーザーがオンラインであるかどうかを反映できます。チャットシステムのインターフェースでは、ユーザーは通常、通信するオブジェクトがオンラインであるかどうかを確認し、すぐに返信を受信できるかどうかを確認したいと考えています。オンラインステータス表示を実現するには、PHPのセッションメカニズムを使用する必要があります。

セッションの概念

セッションは、ユーザー情報を保存するためにWebプログラミングで使用されるプロトコルです。セッションを通じて、Webアプリケーションは、ユーザーのブラウザCookieにデータを保存するのではなく、ユーザー関連のデータをサーバー側に保存できます。このようにして、セッションは複数のページ間で情報を共有し、ユーザーのセッション状態を効果的に管理できます。

オンラインステータス表示機能を実装します

ユーザーがチャットシステムにログインすると、サーバーはセッションを開始し、ユーザーのログイン時間を記録します。ユーザーがリクエストを行うたびに、システムはセッションの有効期限が切れるかどうかを確認します。セッションの有効期限が切れた場合、ユーザーはオフラインでマークされ、そのオンラインステータスはデータベースから削除されます。セッションの有効期限が切れていない場合、システムはユーザーのオンラインステータスを更新して、オンラインステータスがリアルタイムで反映されるようにします。

以下は、オンラインステータス表示機能を実装するサンプルコードです。

session_start(); //セッションを始めるします
if(isset($ _ session ['last_activity'])&&(time() -  $ _session ['last_activity']> 60)){
    // user offline $ user_id = $ _session ['user_id'];
    //ユーザーステータス$ query = "ユーザー_online`から" delete "user_id` = '$ user_id'";
    $ result = mysqli_query($ link、$ query);
    //セッションをクリアします
    session_unset();
    session_destroy();
} それ以外 {
    //ユーザーオンライン$ user_id = $ _session ['user_id'];
    //ユーザーステータス$ queryを更新します= "upprod` users_online` set `last_activity` = now()where` user_id` = '$ user_id' ";
    $ result = mysqli_query($ link、$ query);
}

オンライン数の人々

オンラインユーザーの統計は、チャットシステムのもう1つの重要な機能です。オンラインユーザーカウントは、PHPのタイマーメカニズムに依存して、オンラインユーザーの数を定期的に照会します。

タイマーの概念

タイマーは、特定の時間間隔内でコードを実行できるメカニズムです。 PHPのタイマーにより、開発者はポーリング間隔を設定することにより、事前に決められた時点でスクリプト操作を自動的に実行できます。

オンラインユーザー統計機能を実装します

PHPタイマーを使用してオンラインユーザーテーブルを定期的に投票し、現在オンラインでユーザーの数を数えることができます。以下は、オンラインユーザーカウントを実装するハートビートタイマーのサンプルコードです。

set_time_limit(0); // phpタイマーを使用して(true){
    $ query = "count(*)を選択するcount(*)として` users_online`からonline_users "last_activity`> date_sub(now()、interval 1ポイント)";
    $ result = mysqli_query($ link、$ query);
    $ online_users = mysqli_fetch_array($ result、mysqli_assoc)['online_users'];
    エコー「オンラインの今の人数:」。 $ online_users;
    ob_flush();
    フラッシュ();
    寝る(10); // 102番ごとにクエリ}

この例では、無限のループを使用して、ユーザーのオンラインテーブルを継続的に投票します。 ob_flush()およびflush()関数を介して、オンラインユーザーの数はリアルタイムで出力されます。このプログラムは、ポーリング間隔が妥当であることを確認するために、10秒ごとに一時停止されます。

結論は

オンラインステータスディスプレイとオンラインユーザーカウントは、すべてのチャットシステムに不可欠な機能です。この記事では、PHPのセッションメカニズムを使用して、ユーザーのオンラインステータス表示を実現する方法と、タイマーを介して現在のオンラインユーザー数をカウントする方法を紹介します。これらのテクノロジーを通じて、開発者はユーザーのオンラインステータスを効率的に管理し、ユーザーにリアルタイムのフィードバックを提供できます。