Windows 운영 체제에서 여러 Worker 초기화하기

Windows 운영 체제에서는 하나의 php 파일에서 여러 Worker를 초기화할 수 없습니다.

예를 들어 아래의 test.php 파일을 보십시오.

<?php
...
$socket_server = new Worker("tcp://0.0.0.0:5555");
$socket_server->on....
$websocket_server = new Worker("websocket://0.0.0.0:6666");
$websocket_server->on....
$webserver = new WebServer("http://0.0.0.0:6666");
$webserver->addRoot(...
...

Windows에서 시작하면 다음과 같은 오류가 발생합니다.

multi workers init in one php file are not support

해결 방법

해결 방법은 여러 개의 시작 스크립트를 사용하는 것입니다. 각 스크립트는 하나의 Worker를 인스턴스화 하고, 즉 각 포트에 대해 하나의 시작 파일을 만들어야 합니다.

예를 들어 두 개의 Worker 인스턴스(tcp와 websocket)와 하나의 WebServer 인스턴스를 초기화한다고 가정하면, 세 개의 시작 파일을 만들어야 합니다: start_socket_server.php, start_websocket_server.php, start_webserver.php.

예를 들어:

파일 start_socket_server.php

...
$socket_server = new Worker("tcp://0.0.0.0:5555");
$socket_server->on....
....

파일 start_websocket_server.php

...
$websocket_server = new Worker("websocket://0.0.0.0:6666");
$websocket_server->on....
 ...

파일 start_webserver.php

...
$webserver = new WebServer("http://0.0.0.0:6666");
$webserver->addRoot(...
 ...

시작할 때는 이렇게, 세 개의 스크립트를 직접 시작할 수 있습니다( Windows cmd 명령줄에서 실행).

   php start_socket_server.php start_websocket_server.php start_webserver.php