현재 위치: > 최신 기사 목록> PHP WebSocket 개발 예 : 실시간 커뮤니케이션 기능 구현에 대한 자세한 자습서

PHP WebSocket 개발 예 : 실시간 커뮤니케이션 기능 구현에 대한 자세한 자습서

M66 2025-06-16

1. 소개

WebSocket은 TCP 프로토콜을 기반으로 한 전이중 통신 프로토콜로 클라이언트와 서버 간의 지속적인 연결을 설정하여 실시간 양방향 데이터 전송을 실현할 수 있습니다. 웹 개발에서 WebSocket을 사용하여 실시간 채팅, 데이터 표시 및 기타 기능을 구현할 수 있습니다. 이 기사는 PHP를 사용하여 WebSocket 기능을 개발하고 특정 예제를 통해 구현 프로세스를 보여주는 방법을 자세히 소개합니다.

2. 환경 구성

PHP에서 WebSocket 함수를 사용하는 경우 다음 조건을 충족해야합니다.

  1. PHP 버전> = 5.3
  2. PHP : PECL 설치 SWOOLE의 SWOOLE EXTENSION 설치 (PECL이 설치되어 있는지 확인하십시오)
  3. WebSocket 서버의 포트 번호 (일반적으로 사용되는 포트 8080 또는 기타 비어있는 포트)를 지정하십시오.

3. 개발 과정

다음은 특정 기능을 구현하기위한 자세한 프로세스입니다.

WebSocket 서버를 만듭니다

먼저 WebSocket 서버를 작성하고 지정된 포트를 듣고 클라이언트 연결, 메시지 및 기타 이벤트를 처리해야합니다. Swoole Extension에서 제공하는 SwoolewebsocketServer 클래스를 사용하여 구현할 수 있습니다. 간단한 예는 다음과 같습니다.

<?php
$server = new SwooleWebSocketServer('0.0.0.0', 8080);

$server->on ( &#39;Open&#39;, function ($ server, $ request) {
    echo "새로운 연결 : {$ request-> fd} \ n";
});

$ server-> on ( &#39;message&#39;, function ($ server, $ frame) {
    $ server-> push ($ frame-> fd, "server reque : {$ frame-> data}");
});

$ server-> on ( &#39;close&#39;, function ($ server, $ fd) {
    Echo "연결 닫기 : {$ fd} \ n";
});

$ server-> start ();

위의 코드는 포트 8080을 듣는 WebSocket 서버를 생성합니다. 새 연결이있을 때마다 연결 ID가 인쇄됩니다. 메시지가 수신되면 메시지가 클라이언트로 다시 전송됩니다. 연결이 닫히면 연결 ID가 인쇄됩니다.

특정 기능을 처리합니다

WebSocket 서버에서 특정 기능을 처리 할 때 비즈니스 요구에 따라 개발을 수행 할 수 있습니다. 다음 예는 간단한 라이브 채팅 기능을 구현합니다.

<?php
$server = new SwooleWebSocketServer('0.0.0.0', 8080);
$connections = [];

$server->on ( &#39;Open&#39;, function ($ server, $ request) use (& $ connections) {
    $ connections [$ request-> fd] = $ request-> fd;
    echo "새로운 연결 : {$ request-> fd} \ n";
});

$ server-> on ( &#39;message&#39;, function ($ server, $ frame) 사용 (& $ connections) {
    foreach ($ connections as $ fd) {
        $ server-> push ($ fd, "user {$ frame-> fd} says : {$ frame-> data}");
    }
});

$ server-> on ( &#39;close&#39;, function ($ server, $ fd) 사용 (& $ connections) {
    unset ($ connections [$ fd]);
    Echo "연결 닫기 : {$ fd} \ n";
});

$ server-> start ();

이 코드에서 연결이 켜질 때마다 연결 ID가 배열에 저장됩니다. 메시지가 수신되면 메시지가 연결된 모든 클라이언트에게 전송됩니다. 연결이 닫히면 해당 연결 ID가 배열에서 삭제됩니다.

4. WebSocket 기능을 사용하십시오

개발 환경이 완료되면 Browser 또는 기타 도구를 통해 WebSocket 연결 및 메시지 전송을 수행 할 수 있습니다. 다음은 JavaScript를 사용하여 메시지를 연결하고 보내는 예입니다.

var ws = new WebSocket ( &#39;ws : // localhost : 8080&#39;);

ws.onopen = function () {
    Console.log ( &#39;Connected&#39;);
};

ws.onmessage = function (이벤트) {
    Console.log ( &#39;수신 :&#39; + event.data);
};

ws.onclose = function () {
    Console.log ( &#39;Distronceded&#39;);
};

ws.send ( &#39;hello, websocket!&#39;);

이 코드는 WebSocket 연결을 생성하고 연결 개방, 메시지 수신, 연결 종료 등과 같은 이벤트를 처리합니다. 보내기 메소드를 통해 메시지를 서버로 전송할 수 있습니다.

5. 요약

이 기사에서는 PHP를 사용하여 WebSocket 기능을 개발하는 방법을 자세히 소개하고 실제로 라이브 채팅 기능을 사용하여 예제로 설명합니다. WebSocket 기술을 통해 개발자는 실시간 양방향 데이터 전송을 실현하여 사용자 경험을 향상시킬 수 있습니다. 이 기사가 독자가 PHP WebSocket 기술을 이해하고 적용하는 데 도움이되기를 바랍니다.