本人初學(xué)workerman,閱讀文檔后有幾個疑點,請大家?guī)兔獯鹣隆?br />
1、什么是主進程(哪個步驟中產(chǎn)生的是主進程),什么是子進程(哪個步驟中產(chǎn)生的是子進程)
2、workerman中$worker = new Worker('http://0.0.0.0:8686');
這個new出來的$worker算主進程還是子進程。
3、在thinkphp5中使用workerman是否只要在配置文件worker_server.php
中配置worker_class
參數(shù),也就是配置服務(wù)啟動文件,在前后端通信的時候就可以不用寫$worker = new Worker('http://0.0.0.0:8686');
來實例化出worker,會自動創(chuàng)建一個worker對象?
4、如果$worker = new Worker('http://0.0.0.0:8686');
中的$worker是主進程,那我又該怎樣多創(chuàng)建幾個主進程,通過多次new?
5、假設(shè)我只開啟了一個主線程,5個子線程,我想不同用戶進入不同子進程,又該如何操作?
6、如何驗證我開了多個主線程?
小白一枚,希望大家?guī)臀医饣笙隆?。?!?/p>
workerman只有一個主進程,至少一個子進程。
不支持創(chuàng)建多個主進程。
Worker::runAll(); 時會自動創(chuàng)建主進程和子進程。
$worker = new Worker()
的含義創(chuàng)建一個監(jiān)聽。
$worker->count = 2
含義是這個監(jiān)聽開啟兩個子進程。
建議直接用webman開發(fā),不用管主進程和子進程,開發(fā)體驗和tp等框架一致。
1、你的意思是在【onWorkerStart 】回調(diào)方法中以【$worker = new Worker('?
2、客戶端與服務(wù)器端建立連接時的端口跟這五個端口沒關(guān)系的吧,這五個類似于五個子進程?
我有寫個demo來嘗試,以下是結(jié)合TP框架后的產(chǎn)生的配置文件,我看端口只能配置一個,并不能啟動多個端口呀?是需要我把原本的啟動類換成啟動文件,在啟動文件中多次new5個不同端口worker么?
// 擴展自身需要的配置
'protocol' => 'websocket', // 協(xié)議 支持 tcp udp unix http websocket text
'host' => '0.0.0.0', // 監(jiān)聽地址
'port' => 2345, // 監(jiān)聽端口
'socket' => '', // 完整監(jiān)聽地址
'context' => [], // socket 上下文選項
'worker_class' => [\app\common\service\work\WorkService::class], // 自定義Workerman服務(wù)類名 支持?jǐn)?shù)組定義多個服務(wù)