Come inizializzare più Worker su Windows
Su un sistema operativo Windows non è possibile inizializzare più Worker in un singolo file PHP,
ad esempio nel seguente 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(...
...
L'avvio su Windows genererà un errore
multi workers init in one php file are not support
Soluzione
La soluzione consiste nell'utilizzare più script di avvio, ciascuno dei quali inizializza un Worker, oppure si può dire che ogni porta ha un file di avvio.
Supponiamo di inizializzare due istanze di Worker (tcp e websocket) e un'istanza di WebServer, saranno necessari tre file di avvio: start_socket_server.php, start_websocket_server.php, start_webserver.php.
Ad esempio:
File start_socket_server.php
...
$socket_server = new Worker("tcp://0.0.0.0:5555");
$socket_server->on....
....
File start_websocket_server.php
...
$websocket_server = new Worker("websocket://0.0.0.0:6666");
$websocket_server->on....
...
File start_webserver.php
...
$webserver = new WebServer("http://0.0.0.0:6666");
$webserver->addRoot(...
...
All'avvio si possono eseguire così, lanciando direttamente i tre script (su windows cmd command line)
php start_socket_server.php start_websocket_server.php start_webserver.php