编译安装:https://wiki.swoole.com/wiki/page/6.html
除了手工下载编译swoole以外,还可以通过PHP官方提供的pecl命令,一键下载安装swoole安装swoole
1.切换到PHP安装目录bin下,执行命令
./pecl install swoole
2.编译安装成功后,phpinfo()查看配置文件目录,修改php.ini加入扩展
extension=swoole.so
3.切换到PHP安装目录下sbin,重启php-fpm
pkill -9 php-fpm #结束进程
./php-fpm #开启进程
4.phpinfo查看swoole扩展:
5.多次安装swoole之后,发现phpinfo可以看到swoole扩展,php -m 命令看不到swoole模块
6.卸载,切换到PHP安装目录下的bin
./pecl uninstall swoole
TCP服务端:
$serv = new swoole_server("0.0.0.0", 9501);
$serv->on('connect', function($serv, $fd){
echo "connect success!\n";
});
$serv->on('receive',function($serv,$fd,$from_id,$data){
echo "receive data\n";
var_dump($data);
});
$serv->on('close',function($serv,$fd){
echo "close success!\ns";
});
$serv->start();
php server.php #开启服务,如果失败,可能端口被占用
ps -ajft #新开窗口,查看进程
systemctl stop firewalld.service #关闭防火墙
使用网络调试助手
UDP服务:
$serv = new swoole_server("0.0.0.0", 9502,SWOOLE_PROCESS,SWOOLE_SOCK_UDP);
$serv->on('connect', function($serv, $fd){
echo "connect success!\n";
});
$serv->on('packet',function($serv,$data,$fd){
$serv->sendto($fd['address'],$fd['port'],"Server:$data");
var_dump($fd);
});
$serv->start();
http服务:
$serv = new swoole_http_server("0.0.0.0", 9501);
$serv->on('request', function($request, $response){
//var_dump($request);
$response->header("Content-Type","text/html;charset=utf-8");
$response->end("hello,world!".time());
});
$serv->start();