ServerManager
ServerManager
是 EasySwoole
框架中,用于全局存儲 Swoole 對象實例
所用的一個單例對象。完整的代碼實現(xiàn)在 \EasySwoole\EasySwoole\ServerManager
。
關(guān)鍵函數(shù)
__construct
在構(gòu)造函數(shù)中,ServerManager
實例化了一個事件注冊器 \EasySwoole\EasySwoole\Swoole\EventRegister
,本質(zhì)上這是一個數(shù)組容器。該容器用于存儲注冊給 Swoole
實例的事件回調(diào)。
createSwooleServer
該函數(shù)會根據(jù)所傳遞的參數(shù)與配置項,創(chuàng)建一個 Swoole 實例
,并把該實例賦值存儲到 ServerManager 對象
的 swooleServer
屬性中。
addServer
該函數(shù)用于調(diào)用 Swoole 實例
的 addlistener
方法,創(chuàng)建一個 Swoole的子服務(wù)
,并返回該主服務(wù)的事件注冊器 EventRegister
,注意該注冊器的作用域僅僅在對應(yīng)的子服務(wù)中。
start
該函數(shù)用于調(diào)用 Swoole 實例
的 start
方法,也就是實質(zhì)性地啟動一個 Swoole 服務(wù)
。該函數(shù)做了如下事情:
- 注冊主實例的事件回調(diào)
- 注冊各個子服務(wù)的事件回調(diào)
- 啟動服務(wù)
其他函數(shù)
名稱 | 參數(shù) | 功能描述 |
---|---|---|
getSwooleServer | string $serverName = null | 用于獲取當(dāng)前的 Swoole 實例 或者是對應(yīng)子服務(wù)的 subPort 對象 |
getEventRegister | string $serverName = null | 用于獲取 主Swoole實例 或者是對應(yīng)子服務(wù)的subPort對象 的事件回調(diào)注冊容器 |
isStart | - | 用于判斷當(dāng)前服務(wù)是否已經(jīng)啟動 |