
SwooleHttpServer::start 함수는 HTTP 서버를 시작하는 함수로, 내부적으로 worker 프로세스를 생성하고 listen 함수를 호출하여 서버를 시작합니다.
이 함수가 호출되기 전에 초기화 작업은 다음과 같습니다.
1. SwooleHttpServer 객체의 속성을 설정해야 합니다. 필수 속성은 다음과 같습니다.
* host: 서버를 시작할 호스트 이름 또는 IP 주소
* port: 서버를 시작할 포트 번호
* mode: 서버 모드 (SWOOLE_BASE, SWOOLE_PROCESS, SWOOLE_TCP 등)
* settings: 서버 설정 (worker 프로세스 수, 시간 초과 시간, 등)
2. worker 프로세스를 생성하는 시점에 설정은 다음과 같습니다.
* worker 프로세스는 SwooleHttpServer 객체의 속성을 상속받습니다.
* worker 프로세스는 listen 함수를 호출하여 서버를 시작합니다.
3. worker 프로세스간의 통신 방법은 다음과 같습니다.
* worker 프로세스는 Swoole의 내부 통신 메커니즘을 사용하여 통신합니다.
* worker 프로세스는 Swoole의 통신 메서드를 사용하여 데이터를 주고받습니다.
예를 들어, 다음과 같이 SwooleHttpServer 객체를 생성하고 속성을 설정한 후 start 함수를 호출할 수 있습니다.
#hostingforum.kr
php
use SwooleHttpServer;
$server = new Server('127.0.0.1', 9501, SWOOLE_BASE);
$server->set([
'worker_num' => 4,
'max_request' => 1000,
]);
$server->on('Start', function ($server) {
echo "Server start...n";
});
$server->on('WorkerStart', function ($server, $worker) {
echo "Worker $worker->id start...n";
});
$server->start();
이 예제에서는 SwooleHttpServer 객체를 생성하고 host, port, mode, settings 속성을 설정한 후 start 함수를 호출합니다. worker 프로세스는 Start 이벤트를 발생시키고, WorkerStart 이벤트를 발생시킵니다.
2025-06-08 04:39