swoole 本人学习环境 linux swoole 4.5.5 php7.2
一、swoole 扩展安装
- 环境 wiki.swoole.com/#/environment 可借鉴redis 安装 Linux 线上 如何安装redis 开发
- swoole 官网 www.swoole.com/
- swoole 文档 wiki.swoole.com/#/
- 基于swoole生态的框架推荐 easyswoole 和 hyperf
- 作者博客 rango.swoole.com/
二、 swoole 流程
wiki.swoole.com/wiki/page/p-server...
三、第一个swoole程序
<?php
class Server
{
private $serv;
public function __construct() {
$this->serv = new swoole_server("0.0.0.0", 9502);
$this->serv->set([
'worker_num' => 3,
'task_worker_num' => 3,
]);
$this->serv->on('Start', function ($serv) {
echo "SWOOLE:".SWOOLE_VERSION . " 服务已启动".PHP_EOL;
echo "SWOOLE_CPU_NUM:".swoole_cpu_num().PHP_EOL;
});
$this->serv->on('Receive', function ($serv, $fd, $from_id, $data) {});
$this->serv->on('Task', function ($serv, $task) {});
$this->serv->on('Finish', function ($serv, $task_id, $data) {});
$this->serv->start();
}
}
$server = new Server();
运行代码: cd 文件所在文件目录执行
- netstat -anp #查询当前所有进程
- php swoole01.php
- ps -ef | grep ‘swoole01.php’
- pstree -p 10641
- netstat -tunlp | grep 9502 #查看端口进程id listen->数字即是id
- ps -ef | grep 2750 #查看进程信息
- kill -9 id #关闭进程
有点懵 通俗理解
swoole 是php的一个扩展,封装了很多加载了扩展才有的函数 他不是框架 他除了禁用了少数php函数,其他常用fpm 模式的函数都可以用!
一个更通俗的比喻,假设Server就是一个工厂,那Reactor就是销售,接受客户订单。而Worker就是工人,当销售接到订单后,Worker去工作生产出客户要的东西。而TaskWorker可以理解为行政人员,可以帮助Worker干些杂事,让Worker专心工作。