php安装swoole扩展并使用
Posted autofelix
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php安装swoole扩展并使用相关的知识,希望对你有一定的参考价值。
〝 古人学问遗无力,少壮功夫老始成 〞
php安装swoole扩展并使用,随着php技术的日新月异,协程和并发使用度越来越广,swoole逐渐被搬上舞台,如何学习好swoole似乎成了很多小伙伴的必修课,如果这篇文章能给你带来一点帮助,希望给飞兔小哥哥一键三连,表示支持,谢谢各位小伙伴们。
目录
一、安装依赖
yum -y install m4 autoconf glibc-headers gcc-c++
二、下载swoole扩展包
- php中使用swoole需要一定的硬性的环境要求
- 一定要先看下自己的要求是否达到,不然安装会不成功
- 比如php版本和centos版本要求等
- 命令
cd /usr/local/src/
wget https://github.com/swoole/swoole-src/archive/v1.9.1-stable.tar.gz
tar -zxvf v1.9.1-stable.tar.gz
二、配置编译
- 解压扩展包
- 配置编译
cd v1.9.1-stable
phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
四、开启扩展
- 编译php.ini文件
- 添加swoole扩展
- 使用 php -m 查看扩展是否安装成功
extension=swoole
五、swoole的基本使用
- 创建http服务器
#1.创建对象
$httpServer=new swoole_http_server('0.0.0.0',8000);
#2.监听端口请求:无-则不操作,有-则交给回调函数
$httpServer->on('request',function($request,$response)
//var_dump($request);
//echo "<hr>";
//var_dump($response);
//响应内容
$response->end('hellp');
);
#3.启动服务器
$httpServer->start();
- 创建websocket服务器
###注意:fd指客户端唯一标识(每建立一个连接都有一个唯一标识,后期就通过该标识通信)
#1.创建websocket服务
$server = new swoole_websocket_server("0.0.0.0", 8003);
#2.握手成功,触发回调函数
$server->on('open', function (swoole_websocket_server $server, $request)
echo "server: handshake success with fd$request->fd\\n";
);
#3.收到消息,触发回调函数
$server->on('message', function (swoole_websocket_server $server, $frame)
echo "receive from $frame->fd:$frame->data,opcode:$frame->opcode,fin:$frame->finish\\n";
$server->push($frame->fd, "this is server");
);
#3.关闭连接,触发回调函数
$server->on('close', function ($ser, $fd)
echo "client $fd closed\\n";
);
#4.启动websocket服务
$server->start();
- 进程操作
swoole_set_process_name('php_master_process');
//子进程创建好以后,是不会自己启动的,需要手动启动
$worker = new swoole_process(function()
swoole_set_process_name('php_son_process');
sleep(100);
);
$worker->start();
//子进程启动以后,会沉睡1000秒,但是主进程在执行完一次以后就退出
//了,那么子进程还有很长时间才会结束,这个时候会造成子进程无法管理
swoole_process::wait();
- 延时器
swoole_timer_after($time, function()
//do something
);
- 定时器
swoole_timer_tick($time,function()
//do something
);
- 异步文件操作
swoole_async_readfile($filepath,function($filename,$contents)
echo $contents;
);
以上是关于php安装swoole扩展并使用的主要内容,如果未能解决你的问题,请参考以下文章