Birden fazla Worker nasıl başlatılır – Windows işletim sistemi
Windows işletim sistemi altında bir PHP dosyasında birden fazla Worker başlatılamaz.
Örneğin, test.php aşağıdaki gibi olsun:
<?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'ta bu şekilde başlatmaya çalışıldığında hata alınır:
multi workers init in one php file are not support
Çözüm Yolu
Çözüm, birden fazla başlatma betiği kullanmaktır; her betik bir Worker'ı başlatır veya her port için bir başlatma dosyasıdır.
Örneğin:
Dosya start_socket_server.php
...
$socket_server = new Worker("tcp://0.0.0.0:5555");
$socket_server->on....
....
Dosya start_websocket_server.php
...
$websocket_server = new Worker("websocket://0.0.0.0:6666");
$websocket_server->on....
...
Dosya start_webserver.php
...
$webserver = new WebServer("http://0.0.0.0:6666");
$webserver->addRoot(...
...
Başlatılırken, direkt üç betiği başlatmak için (Windows cmd komut istemcisinde çalıştırıldığında) şu şekilde kullanılabilir:
php start_socket_server.php start_websocket_server.php start_webserver.php