php安装swoole扩展并使用

Posted autofelix

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php安装swoole扩展并使用相关的知识,希望对你有一定的参考价值。

〝 古人学问遗无力,少壮功夫老始成 〞

php安装swoole扩展并使用,随着php技术的日新月异,协程和并发使用度越来越广,swoole逐渐被搬上舞台,如何学习好swoole似乎成了很多小伙伴的必修课,如果这篇文章能给你带来一点帮助,希望给飞兔小哥哥一键三连,表示支持,谢谢各位小伙伴们。

目录

一、安装依赖

二、下载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扩展并使用的主要内容,如果未能解决你的问题,请参考以下文章

php安装redis扩展

php自定义安装自带扩展

php自定义安装自带扩展

PHP7安装Swoole扩展

php扩展 swoole的安装与使用

php扩展 swoole的安装与使用