การเริ่มต้น Worker หลายตัวในระบบปฏิบัติการ Windows
ในระบบปฏิบัติการ Windows ไม่สามารถเริ่มต้น Worker หลายตัวในไฟล์ php เดียวได้
เช่นในไฟล์ 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 จะมีข้อผิดพลาดเกิดขึ้น
multi workers init in one php file are not support
วิธีแก้ไข
วิธีแก้ไขคือการใช้สคริปต์การเริ่มต้นหลายไฟล์ โดยแต่ละไฟล์จะเริ่มต้นการสร้าง Worker หนึ่งตัว หรือพูดอีกอย่างว่าหนึ่งพอร์ตต่อหนึ่งไฟล์เริ่มต้น
สมมติว่าต้องการเริ่มต้น Worker 2 ตัว (tcp และ websocket) และ WebServer 1 ตัว จะต้องสร้างไฟล์เริ่มต้น 3 ไฟล์ คือ start_socket_server.php, start_websocket_server.php และ start_webserver.php
ตัวอย่าง:
ไฟล์ start_socket_server.php
...
$socket_server = new Worker("tcp://0.0.0.0:5555");
$socket_server->on....
....
ไฟล์ start_websocket_server.php
...
$websocket_server = new Worker("websocket://0.0.0.0:6666");
$websocket_server->on....
...
ไฟล์ start_webserver.php
...
$webserver = new WebServer("http://0.0.0.0:6666");
$webserver->addRoot(...
...
เมื่อเริ่มต้น สามารถทำได้โดยตรงในขณะนี้ โดยการเรียกใช้ทั้งสามสคริปต์ (ใน windows cmd command line)
php start_socket_server.php start_websocket_server.php start_webserver.php