```
onStart(Server $server);
```
啟動后在主進程(master)的主線程回調此函數
onStart回調中,僅允許echo、打印Log、修改進程名稱。不得執行其他操作。
BASE模式下沒有master進程,因此不存在onStart事件。
onStart回調中,僅允許echo、打印Log、修改進程名稱。不得執行其他操作。onWorkerStart和onStart回調是在不同進程中并行執行的,不存在先后順序。
## 代碼語法:
~~~
$server->on('start',function ($serv){
echo 'master_pid..'.$serv->master_pid.PHP_EOL;
echo 'manager_pid..'.$serv->manager_pid.PHP_EOL;
});
~~~
```
onWorkerStart(swoole_server $server, int $worker_id);
```
此事件在Worker進程/Task進程啟動時發生。這里創建的對象可以在進程生命周期內使用
## 代碼語法:
~~~
$server->on('workerstart',function ($serv,$worker_id){
echo 'worker_pid..'.$serv->worker_pid.PHP_EOL;
echo 'worker_id..'.$serv->worker_id.PHP_EOL;
});
~~~

```
onManagerStart(swoole_server $serv);
```
當管理進程啟動時調用它 在這個回調函數中可以修改管理進程的名稱。
```
swoole_set_process_name
```
用于設置進程的名稱
在onManagerStart修改為manager進程名稱
onStart調用時修改為主進程名稱
onWorkerStart修改為worker進程名稱
```
onWorkerError(swoole_server $serv, int $worker_id, int $worker_pid, int $exit_code, int $signal);
```
$worker_id 是異常進程的編號
$worker_pid 是異常進程的ID
$exit_code 退出的狀態碼,范圍是 0~255
$signal 進程退出的信號
kill -9 進程號 強制結束
當Worker/Task進程發生異常后會在Manager進程內回調此函數。此函數主要用于報警和監控
```
onWorkerStop(Swoole\Server $server, int $worker_id);
```
kill 進程號/正常 觸發max_req
此事件在Worker進程終止時發生。在此函數中可以回收Worker進程申請的各類資源
```
onConnect(swoole_server $server, int $fd, int $reactorId);
```
有新的連接進入時,在worker進程中回調
$server是Swoole\Server對象
$fd是連接的文件描述符,發送數據/關閉連接時需要此參數
$reactorId來自哪個Reactor線程
```
onReceive(swoole_server $server, int $fd, int $reactor_id, string $data);
```
接收到數據時回調此函數,發生在worker進程中
$server,Server對象
$fd,TCP客戶端連接的唯一標識符
$reactor_id,TCP連接所在的Reactor線程ID
$data,收到的數據內容,可能是文本或者二進制內容
代碼案例:
~~~
$server->on('receive',function ($serv,$fd,$reactor_id,$data){
echo 'fd--'.$fd.'reactor_id--'.$reactor_id.'data---'.$data.PHP_EOL;
});
~~~

```
onClose(swoole_server $server, int $fd, int $reactorId);
```
TCP客戶端連接關閉后,在worker進程中回調此函數
無論由客戶端發起close還是服務器端主動調用$serv->close()關閉連接,都會觸發此事件