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