一、 swoole 扩展安装
安装前必须保证系统已经安装了下列软件
php-7.0
或更高版本gcc-4.8
或更高版本make
autoconf
pcre
(CentOS
系统可以执行命令:yum install pcre-devel
)
下载地址:
- https://github.com/swoole/swoole-src/releases
- http://pecl.php.net/package/swoole
- http://git.oschina.net/swoole/swoole
编译安装:
cd /usr/local wget -c https://github.com/swoole/swoole-src/archive/v2.0.8.tar.gz tar -zxvf v2.0.8.tar.gz cd swoole-src-2.0.8/ phpize ./configure make && make install
修改php.ini文件:
extension=swoole.so
通过php -m
或phpinfo()
来查看是否成功加载了swoole.so
,如果没有可能是php.ini
的路径不对,可以使用php --ini
来定位到php.ini
的绝对路径。
二、 swoole 应用
1.打开下载的swoole包,在/swoole/examples/server/echo.php,这个文件创建了一个TCP服务器,监听本机9501 端口
echo.php
<?php $serv = new swoole_server("0.0.0.0", 9501); $serv->on('connect', function ($serv, $fd, $reactor_id){ echo "[#".posix_getpid()."] Client@[$fd:$reactor_id]: Connect. "; }); $serv->set(array( 'worker_num' => 1, )); $serv->on('receive', function (swoole_server $serv, $fd, $reactor_id, $data) { echo "[#".$serv->worker_id."] Client[$fd] client data: $data "; if ($serv->send($fd, "Server {$data} ") == false) { echo "error "; } }); $serv->on('close', function ($serv, $fd, $reactor_id) { echo "[#".posix_getpid()."] Client@[$fd:$reactor_id]: Close. "; }); $serv->start();
2.启动server,打开终端,运行echo.php
命令
php echo.php
这个时候,其实Server已经启动了,并且正在运行,监听了本机的9501端口,此时Server处于等待的状态,所以没有任何输出。
打开一个新窗口,用telnet连接
telnet 127.0.0.1 9501
输入hi,结果如下
-------end-----