현재 위치: > 최신 기사 목록> PHP를 사용하여 라이브 채팅 시스템을 개발하는 방법 : 온라인 상태 표시 및 온라인 번호 통계 기능

PHP를 사용하여 라이브 채팅 시스템을 개발하는 방법 : 온라인 상태 표시 및 온라인 번호 통계 기능

gitbox 2025-06-17

소개하다

실시간 채팅 시스템은 현대 소셜 플랫폼의 중요한 부분이되었습니다. PHP는 가장 인기있는 웹 프로그래밍 언어 중 하나 이므로이 기사는 PHP를 사용하여 온라인 상태 표시 및 온라인 사용자 통계 기능을 실시간 채팅 시스템에서 실현하는 방법을 소개합니다. PHP 세션 메커니즘을 통해 온라인 상태를 관리하는 방법과 타이머를 사용하여 온라인 사용자를 계산하는 방법을 자세히 설명합니다.

온라인 상태 표시

온라인 상태 표시는 채팅 시스템에서 중요한 지표로 사용자가 온라인 상태인지 반영 할 수 있습니다. 채팅 시스템의 인터페이스에서, 사용자는 일반적으로 통신하는 객체가 온라인 상태인지 신속하게 답장을받을 수 있는지 확인하려고합니다. 온라인 상태 표시를 실현하려면 PHP의 세션 메커니즘을 사용해야합니다.

세션의 개념

세션은 사용자 정보를 저장하기 위해 웹 프로그래밍에 사용되는 프로토콜입니다. 세션을 통해 웹 응용 프로그램은 사용자 관련 데이터를 사용자의 브라우저 쿠키에 저장하지 않고 서버 측에 저장할 수 있습니다. 이러한 방식으로 세션은 여러 페이지간에 정보를 공유하고 사용자의 세션 상태를 효과적으로 관리 할 수 ​​있습니다.

온라인 상태 표시 기능을 구현합니다

사용자가 채팅 시스템에 로그인하면 서버는 세션을 시작하고 사용자의 로그인 시간을 기록합니다. 사용자가 요청을 할 때마다 시스템은 세션이 만료되는지 확인합니다. 세션이 만료되면 사용자는 오프라인으로 표시되고 온라인 상태는 데이터베이스에서 삭제됩니다. 세션이 만료되지 않은 경우 시스템은 온라인 상태가 실시간으로 반영되도록 사용자의 온라인 상태를 업데이트합니다.

다음은 온라인 상태 표시 기능을 구현하는 샘플 코드입니다.

session_start (); // 세션을 시작합니다
if (isset ($ _ session [ 'last_activity']) && (time () - $ _session [ 'last_activity'> 60)) {
    // 사용자 오프라인 $ user_id = $ _session [ 'user_id'];
    // 사용자 상태 삭제 $ query = "`user_online`에서 삭제`user_id` = '$ user_id'";
    $ result = mysqli_query ($ link, $ query);
    // 클리어 세션
    session_unset ();
    Session_Destroy ();
} 또 다른 {
    // 사용자 온라인 $ user_id = $ _session [ 'user_id'];
    // 사용자 상태 업데이트 $ query = "usture`user_online` set`last_activity` = now () 여기서`user_id` = '$ user_id'";
    $ result = mysqli_query ($ link, $ query);
}

온라인 사람들

온라인 사용자의 통계는 채팅 시스템의 또 다른 주요 기능입니다. 온라인 사용자 수는 PHP의 타이머 메커니즘에 따라 온라인 사용자 수를 정기적으로 쿼리합니다.

타이머의 개념

타이머는 특정 시간 간격 내에서 코드를 실행할 수있는 메커니즘입니다. PHP의 타이머를 사용하면 개발자가 투표 간격을 설정하여 미리 정해진 시점에서 스크립트 작업을 자동으로 실행할 수 있습니다.

온라인 사용자 통계 기능을 구현하십시오

PHP 타이머를 사용하여 온라인 사용자 테이블을 주기적으로 설비하고 현재 온라인 사용자 수를 계산할 수 있습니다. 다음은 온라인 사용자 계수를 구현하는 하트 비트 타이머의 샘플 코드입니다.

set_time_limit (0); // PHP 타이머 사용 (true) {
    $ query = "`user_online`에서 온라인 _users로 count (*)를 선택하십시오.
    $ result = mysqli_query ($ link, $ query);
    $ online_users = mysqli_fetch_array ($ result, mysqli_assoc) [ 'online_users'];
    에코 "현재 온라인 사람들의 현재 수 :". $ online_users;
    ob_flush ();
    플러시();
    수면 (10); // 10 초마다 쿼리}

이 예에서는 무한 루프를 사용하여 사용자의 온라인 테이블을 지속적으로 폴링합니다. OB_FLUSH () 및 FLUSH () 함수를 통해 온라인 사용자 수는 실시간으로 출력됩니다. 투표 간격이 합리적인지 확인하기 위해 10 초마다 프로그램이 일시 중지됩니다.

결론적으로

온라인 상태 표시 및 온라인 사용자 계산은 모든 채팅 시스템의 필수 기능입니다. 이 기사는 PHP의 세션 메커니즘을 사용하여 사용자의 온라인 상태 표시를 실현하는 방법과 타이머를 통해 현재 온라인 사용자 수를 계산하는 방법을 소개합니다. 이러한 기술을 통해 개발자는 사용자의 온라인 상태를 효율적으로 관리하고 사용자에게 실시간 피드백을 제공 할 수 있습니다.