라이브러리
[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` 이벤트를 등록하여 태스크가 완료될 때 메시지를 출력합니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.