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