EasySwoole運(yùn)行步驟
EasySwoole的框架運(yùn)行步驟大概為以下幾步:
- 從php easyswoole.php start開始,首先進(jìn)行了目錄常量定義,臨時(shí)目錄,日志目錄定義,
- 觸發(fā)
initialize
,這個(gè)事件你可以進(jìn)行一些服務(wù)注冊(cè),修改臨時(shí)目錄,日志目錄等 - 獲取框架配置,監(jiān)聽ip,端口,worker進(jìn)程數(shù),子服務(wù)配置,回調(diào)等,準(zhǔn)備開啟swoole服務(wù)
- 觸發(fā)
mainServerCreate
,這個(gè)事件你可以自行重新配置監(jiān)聽ip,端口,回調(diào)事件,框架異常,等等 - 框架根據(jù)配置,啟動(dòng)swoole服務(wù),附帶子服務(wù)(如果有配置的話)
到這個(gè)時(shí)候,框架已經(jīng)是啟動(dòng)成功了,由于swoole_server的特性,開啟之后會(huì)常駐內(nèi)存(進(jìn)程會(huì)一直運(yùn)行,可以理解成一直在while(1){}),等待請(qǐng)求進(jìn)入然后回調(diào).
用戶請(qǐng)求步驟:
- 用戶請(qǐng)求
- swoole_server觸發(fā)回調(diào)事件,經(jīng)過(guò)框架解析
- 觸發(fā)
onRequest
(http服務(wù)時(shí)),onReceive
(tcp服務(wù)時(shí)) - 經(jīng)過(guò)http組件的調(diào)度,調(diào)用控制器方法完畢
- 觸發(fā)
afterRequest
事件,表明這次請(qǐng)求已經(jīng)要結(jié)束 - es將響應(yīng)數(shù)據(jù)交回給swoole_server,給客戶端響應(yīng)數(shù)據(jù)