```
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;
});
~~~
![](https://img.kancloud.cn/aa/02/aa021d1f4fd3e3c4da7278add4346aaa_901x497.png)
```
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;
});
~~~
![](https://img.kancloud.cn/11/f8/11f8056feaa843b77f62dbfe7b8f2f83_932x451.png)
```
onClose(swoole_server $server, int $fd, int $reactorId);
```
TCP客户端连接关闭后,在worker进程中回调此函数
无论由客户端发起close还是服务器端主动调用$serv->close()关闭连接,都会触发此事件