Windows işletim sisteminde birden fazla Worker'ı nasıl başlatılır
Windows işletim sisteminde bir php dosyasında birden fazla Worker başlatmak mümkün değildir.
Örneğin aşağıdaki 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'ta başlatıldığında hata verir
multi workers init in one php file are not support
Çözüm Yolu
Çözüm yolu, birden fazla başlangıç betiği kullanmaktır; her betik bir Worker örneği başlatır veya her port için bir başlangıç dosyası kullanılır.
İki Worker örneği (tcp ve websocket) ve bir WebServer örneği başlatmayı varsayalım. Bunun için üç başlangıç dosyası oluşturmak gerekir: start_socket_server.php, start_websocket_server.php ve start_webserver.php
Ö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ırken bu şekilde, doğrudan üç betiği başlatabilirsiniz ( windows cmd komut satırında çalıştırarak)
php start_socket_server.php start_websocket_server.php start_webserver.php