使用webman 打包工具打包后,在webman中自定義的進(jìn)程無(wú)法啟動(dòng),比如我在start.php 中開(kāi)啟了一個(gè)websocket程序,使用源碼啟動(dòng)的時(shí)候是可以監(jiān)聽(tīng)到端口的,但是使用打包后的bin 啟動(dòng)時(shí)就沒(méi)有websocket監(jiān)聽(tīng)的端口了
按照webman文檔自定義進(jìn)程去設(shè)置才行。
http://wtbis.cn/doc/webman/process.html
這個(gè)方式好像無(wú)法獲取到work實(shí)例,而且在app下的database.php的數(shù)據(jù)配置要想要也使用不了,我需要獲取到work實(shí)例,然后給所有的客戶端推送消息
public function onWorkerStart($worker) {
$this->worker = $worker;
}
onWorkerStart 里獲取,然后存到屬性里
如果啟動(dòng)4個(gè)進(jìn)程,onWorkerStart 會(huì)被調(diào)用4次,$this->worker = $worker; 這樣不是會(huì)后面的覆蓋掉前面的嗎?這樣的話調(diào)用$this->worker 只能獲取到最后一次調(diào)用時(shí)的worker
每個(gè)進(jìn)程是獨(dú)立的,都有自己的worker。如果你要給所有連接發(fā)消息,建議可以只開(kāi)1個(gè)進(jìn)程,不要開(kāi)4個(gè)。
否則A進(jìn)程里調(diào)用worker給所有連接發(fā)消息,B進(jìn)程里的連接是收不到的。
我又遇到一個(gè)問(wèn)題,就是打包前文件上傳是在public/uploads 目錄下這個(gè)目錄給到寫(xiě)的權(quán)限,但是打包后這個(gè)目錄好像就不知道去哪里了?而且權(quán)限也不知道如何給
config/app.php
。
'public_path' => base_path(false) . DIRECTORY_SEPARATOR . 'public',
按照文檔做