Swoole\Server是事件驅動模式,所有的業務邏輯程式碼必須寫在事件回呼函數中。當特定的網路事件發生後,底層會主動回調指定的PHP函數。 共支持13種事件。 (推薦學習: swoole影片教學)
事件執行順序
所有事件回呼均在$server->start後發生
伺服器關閉程式終止時最後一次事件是onShutdown
伺服器啟動成功後,onStart/onManagerStart/onWorkerStart會在不同的進程內並發執行
onReceive/onConnect/onClose在Worker進程中觸發
Worker/Task進程啟動/結束時會分別呼叫一次onWorkerStart/onWorkerStop
onTask事件僅在task進程中發生
onFinish事件僅在worker進程中發生
onStart/onManagerStart/onWorkerStart 3個事件的執行順序是不確定的
##協程模式
################################################# #Swoole2/4版本支援了協程,使用協程後事件回呼函數將會並發地執行。協程是一種用戶態線程實現,沒有額外的調度消耗,僅佔用記憶體。 ######使用協程模式,可以理解為「每次事件回呼函數都會建立一個新的執行緒去執行,事件回呼函數執行完成後,執行緒退出」。 #########如果希望關閉協程,可設定:######
$server->set(["enable_coroutine" => false, ]);
以上是swoole事件如何用的詳細內容。更多資訊請關注PHP中文網其他相關文章!