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程序
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专心工作。