Как инициализировать несколько Worker в операционной системе Windows
В операционной системе Windows невозможно инициализировать несколько Worker в одном php файле,
например, в следующем 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)
php start_socket_server.php start_websocket_server.php start_webserver.php