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