Cách khởi tạo nhiều Worker trên hệ điều hành Windows

Trên hệ điều hành Windows, không thể khởi tạo nhiều Worker trong một tệp php.

Ví dụ dưới đây là 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(...
...

Khi khởi động trên Windows sẽ báo lỗi

multi workers init in one php file are not support

Phương pháp giải quyết

Phương pháp giải quyết là sử dụng nhiều tệp khởi động, mỗi tệp khởi động một Worker, hoặc nói cách khác, mỗi cổng một tệp khởi động.

Giả sử khởi tạo hai instance Worker (tcp và websocket) và một instance WebServer, cần tạo ba tệp khởi động là start_socket_server.php, start_websocket_server.php và start_webserver.php.

Ví dụ:

Tệp start_socket_server.php

...
$socket_server = new Worker("tcp://0.0.0.0:5555");
$socket_server->on....
....

Tệp start_websocket_server.php

...
$websocket_server = new Worker("websocket://0.0.0.0:6666");
$websocket_server->on....
 ...

Tệp start_webserver.php

...
$webserver = new WebServer("http://0.0.0.0:6666");
$webserver->addRoot(...
 ...

Khi khởi động, bạn có thể làm như sau, trực tiếp khởi động ba tệp, (chạy trong windows cmd命令行)

   php start_socket_server.php start_websocket_server.php start_webserver.php