我每次使用reload的時(shí)候,時(shí)不時(shí)會(huì)出現(xiàn)websocket出現(xiàn)端口鏈接不上的情況,can not connect to tcp://127.0.0.1:2301 Connection refused,我的配置文件如下
return [
'gateway' => [
'handler' => Gateway::class,
'listen' => 'websocket://0.0.0.0:9669',
'count' => 2,
'reloadable' => false,
'constructor' => ['config' => [
'lanIp' => '127.0.0.1',
'startPort' => 2300,
'pingInterval' => 30,
'pingNotResponseLimit' => 2,
'pingData' => '',
'registerAddress' => '127.0.0.1:1236',
'onConnect' => function(){
},
]]
],
'worker' => [
'handler' => BusinessWorker::class,
'count' => cpu_count()*2,
'constructor' => ['config' => [
'eventHandler' => plugin\webman\gateway\Events::class,
'name' => 'ChatBusinessWorker',
'registerAddress' => '127.0.0.1:1236',
]]
],
'register' => [
'handler' => Register::class,
'listen' => 'text://127.0.0.1:1236',
'count' => 1, // Must be 1
'reloadable' => false,
'constructor' => []
],
];
pid:1060270 Exception: can not connect to tcp://127.0.0.1:2301 Connection refused in XXXXXX
啟動(dòng)圖如下:
啟動(dòng)界面截圖下
不是說每次reload都會(huì),就是每次我拉代碼reload更新功能,偶爾就會(huì)出現(xiàn)can not connect to tcp://127.0.0.1:2301 或者是 can not connect to tcp://127.0.0.1:2300 然后前端的socket就鏈接不上了
幾個(gè)問題
1、exit with status 11
代表你的php出現(xiàn)了coredump,可能是使用了不穩(wěn)定的php擴(kuò)展導(dǎo)致,也可能是php版本的bug。換個(gè)php版本試下。
2、如果連接數(shù)超過1000需要安裝event擴(kuò)展并優(yōu)化linux內(nèi)核,restart重啟gatewayWorker
3、cpu高可能是客戶端在頻繁發(fā)送數(shù)據(jù)給服務(wù)端,也可能是因?yàn)閘inux內(nèi)核沒優(yōu)化導(dǎo)致資源達(dá)到上限
好的,剛看到文檔確實(shí)沒有安裝event擴(kuò)展,socket目前就是客戶端一直發(fā)送心跳然后服務(wù)做了簡單的IO處理而已
非常感謝?。?!
對(duì)了,能否麻煩你幫解答一下,我看gateway的進(jìn)程占用CPU是很高的,內(nèi)存也占用很高,因?yàn)槲颐看蝦estart的時(shí)候
內(nèi)存垮的一下就下來了(大概內(nèi)存下降了有9GB),這關(guān)聯(lián)性大嗎