Swoole是一个国内开源的C语言编写的扩展,Swoole是php的一个异步、并行、高性能的网络通信引擎。
可以用Swoole做一些想http、websocket的服务器,Swoole提供了异步多线程服务器,支持协程。Swoole可以广泛运用于:互联网、网络游戏、在线直播、聊天室。
使用PHP+Swoole可以是我们的开发效率大大提升,并且性能非常好。
也算是PHP 众多框架中稍微难上手的框架 ,虽说框架,其实是个PHP 的扩展,不过不像其他扩展,直接调用库这么简单。我的简单理解就是通过用PHP 创建一个服务器,然后在服务器中配置参数,可以使用多线程来运行程序,速度快的原因大概是:
1.使用多线程,可以自行设置work_num,提高执行效率
2.使用缓存,提高读取速度
安装方法:
因为swoole 不支持window,所以只能在linux安装,如果坚持想在 windows 安装,可以在window下安装Cygwin64 Terminal ,我本地安装了,但是再安装swoole就失败了,提示我插件不齐,所以索性在阿里云上安装了。
以上是安装的方法官方精简版
我简单解释一下,首先用wget 下载swoole
wget https://pecl.php.net/get/swoole-4.8.9.tgz
//解压
tar -zxvf swoole-4.8.9.tgz
cd swoole-4.8.9
//执行命令
phpize && \
./configure && \
make && sudo make install
执行后会生成以下文件
这个时候可以查看一下PHP 的php.ini 的路径
有时候lib 里面没有php.ini的,在其他地方复制进去就好了!
在lib 中找到 .so 的文件的文件夹,讲刚才的swoole.so 的文件放进去就好了,像这样
然后再php.ini 中加上extension=swoole.so ,保存,重启PHP 。
因为我是用php-fpm,我是直接kill 了再打开
输入命令 php -m 查看PHP 加载模块
这样,swoole 模块就算是安装好了!
使用方法:
根据官方文档解说,swoole 适用的场景很多,对我来说,应该用得比较多,就是http 服务了,这里贴一些官方的代码
http_server.php
$http = new Swoole\Http\Server('0.0.0.0', 9501);
$http->on('Request', function ($request, $response) {
$response->header('Content-Type', 'text/html; charset=utf-8');
$response->end('<h1>Hello Swoole. #' . rand(1000, 9999) . '</h1>');
});
$http->start();
直接用php 命令执行 http_server.php
php http_server.php
在浏览器中输入 本机IP:9501
以后有时间会将swoole 整合到laravel 中~