라이브러리

[PHP] SwooleHttpServer::on - 이벤트 이름으로 콜백 함수를 HTTP 서버에 연결합니다.




SwooleHttpServer::on

Swoole는 PHP에서 사용할 수 있는 고성능의 네트워크 프레임워크입니다. SwooleHttpServer::on은 SwooleHttpServer 객체에서 이벤트를 등록하는 메서드입니다. 이벤트는 서버가 특정 동작을 수행할 때 발생하는 일련의 작업입니다.

이벤트 종류


SwooleHttpServer::on 메서드는 다양한 이벤트를 지원합니다. 다음은 주요 이벤트 종류입니다.

* `Start`: 서버가 시작될 때 발생하는 이벤트
* `Shutdown`: 서버가 종료될 때 발생하는 이벤트
* `WorkerStart`: 워커 프로세스가 시작될 때 발생하는 이벤트
* `WorkerStop`: 워커 프로세스가 종료될 때 발생하는 이벤트
* `Connect`: 클라이언트가 연결될 때 발생하는 이벤트
* `Receive`: 클라이언트가 데이터를 전송할 때 발생하는 이벤트
* `Close`: 클라이언트가 연결을 종료할 때 발생하는 이벤트
* `Task`: 태스크가 수행될 때 발생하는 이벤트
* `Finish`: 태스크가 완료될 때 발생하는 이벤트

예제


다음 예제는 SwooleHttpServer::on 메서드를 사용하여 이벤트를 등록하는 방법을 설명합니다.

#hostingforum.kr
php

use SwooleHttpServer;



// SwooleHttpServer 객체 생성

$http = new Server("0.0.0.0", 9501);



// 이벤트 등록

$http->on('Start', function ($server) {

    echo "서버가 시작되었습니다.
";

});



$http->on('Receive', function ($request, $response) {

    echo "클라이언트가 데이터를 전송했습니다.
";

    $response->write("Hello, World!");

    $response->end();

});



// 서버 시작

$http->start();



이 예제에서는 `Start` 이벤트를 등록하여 서버가 시작될 때 메시지를 출력합니다. 또한 `Receive` 이벤트를 등록하여 클라이언트가 데이터를 전송할 때 메시지를 출력하고 클라이언트에게 데이터를 전송합니다.

태스크 예제


다음 예제는 태스크를 사용하여 이벤트를 등록하는 방법을 설명합니다.

#hostingforum.kr
php

use SwooleHttpServer;



// SwooleHttpServer 객체 생성

$http = new Server("0.0.0.0", 9501);



// 태스크 함수 정의

function task($server, $taskId, $workerId, $data)

{

    echo "태스크 ID: $taskId, 워커 ID: $workerId, 데이터: $data
";

    sleep(2);

    $server->finish($data);

}



// 태스크 이벤트 등록

$http->on('Task', function ($server, $taskId, $fromId, $data) {

    echo "태스크가 수행되었습니다.
";

    $server->task($taskId, $fromId, $data, 'task');

});



// 태스크 완료 이벤트 등록

$http->on('Finish', function ($server, $taskId, $data) {

    echo "태스크가 완료되었습니다.
";

});



// 서버 시작

$http->start();



이 예제에서는 `Task` 이벤트를 등록하여 태스크를 수행할 때 메시지를 출력하고 태스크가 완료될 때 메시지를 출력합니다. 또한 `Finish` 이벤트를 등록하여 태스크가 완료될 때 메시지를 출력합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 99 페이지

검색

게시물 검색