Comment initialiser plusieurs Workers sous le système d'exploitation Windows
Il n'est pas possible d'initialiser plusieurs Workers dans un seul fichier php sous le système d'exploitation Windows.
Par exemple, dans le fichier 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(...
...
Lorsque vous le lancez sous Windows, une erreur sera affichée :
multi workers init in one php file are not support
Méthode de résolution
La solution consiste à utiliser plusieurs scripts de démarrage, chaque script instanciant un Worker, c'est-à-dire un fichier de démarrage par port.
Supposons que nous initialisions deux instances de Worker (tcp et websocket) et une instance de WebServer, il est alors nécessaire de créer trois fichiers de démarrage : start_socket_server.php, start_websocket_server.php et start_webserver.php.
Par exemple :
Fichier start_socket_server.php
...
$socket_server = new Worker("tcp://0.0.0.0:5555");
$socket_server->on....
....
Fichier start_websocket_server.php
...
$websocket_server = new Worker("websocket://0.0.0.0:6666");
$websocket_server->on....
...
Fichier start_webserver.php
...
$webserver = new WebServer("http://0.0.0.0:6666");
$webserver->addRoot(...
...
Lorsque vous démarrez, vous pouvez le faire comme ceci, en lançant directement les trois scripts (dans l'invite de commandes Windows) :
php start_socket_server.php start_websocket_server.php start_webserver.php