উইন্ডোজ অপারেটিং সিস্টেমে কিভাবে একাধিক Worker ইনিশিয়ালাইজ করতে হয়

উইন্ডোজ অপারেটিং সিস্টেমে একটি php ফাইলে একাধিক Worker ইনিশিয়ালাইজ করা সম্ভব নয়,

যেমন নিচের 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(...
...

উইন্ডোজে চালু করলে ত্রুটি দেখাবে

multi workers init in one php file are not support

সমাধান

সমাধান হল একাধিক স্টার্ট স্ক্রিপ্ট ব্যবহার করা, প্রতিটি স্ক্রিপ্ট একটি Worker ইনিশিয়ালাইজ করবে, বা বলা যায় প্রতিটি পোর্টের জন্য একটি স্টার্ট ফাইল।

ধরি দুটি Worker ইনস্ট্যান্স (tcp এবং websocket) এবং একটি WebServer ইনস্ট্যান্স ইনিশিয়ালাইজ করতে হয়, তাহলে তিনটি স্টার্ট ফাইল তৈরি করতে হবে 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(...
 ...

চালানোর সময় সরাসরি তিনটি স্ক্রিপ্ট চালু করতে পারেন, (উইন্ডোজ cmd কমান্ড লাইন এ রান করুন)

   php start_socket_server.php start_websocket_server.php start_webserver.php