学习swoole笔记

swoole是什么

swoole是用来补缺php异步处理缺陷的新技术,支持协程,用户也可以完全抛开原来的fpm模式调用,而直接使用php+swoole开发项目,能更加处理网站的高并发,大数据问题;它是php异步网络通讯引擎;异步多线程;

swoole用来做什么

在线直播,聊天室,游戏行业

swoole如何用

安装php,swoole就是php的一个扩展,可以用在http,websocket等请求。

swoole课程1

swoole课程2-php源码编译安装

  1. configure (shell脚本):主要用于编译安装源代码库和软件,对源代码库进行一些设置(需要gcc,autoconfig);eg:./configure --prefix=/home/usr/local/php (安装路径)
  2. make -j (构建\编译)
  3. make install (安装)

知识点

  • php的启动,是在bin目录下,启动命令 ./bin/php test.php (执行php)
  • 设置当前用户的快捷启动操作:安装目录下 vi ~/.bash_profile export PATH 处,增加 alias php=/home/usr/local/php 然后source ~./bash_profile
  • souce filename 和sh filename的区别: source 不会生成新的子shell,只是可能脚本修改需要重新读取执行了这个shell脚本。而sh 则会产生新的子shell,不改变父级shell的进程和变量
  • 注意php.ini的默认文件需要自己复制php.ini-development,然后修改成php.ini,源码安装没设置安装路径会默认放在lib文件夹下,但是人们习惯放在etc下,这两个目录下寻找
  • php -i | grep php.ini 查找php.ini 生效的目录

swoole课程3-swoole编译安装

  1. 下载: git clone / 下载上传压缩包,直接解压
  2. 需要先用phpize 先生成configure 文件,phpize是用来安装php扩展模块的。在swoole的文件目录下,/home/usr/lcoal/bin/phpize 会自动生成 configure 脚本文件
  3. swoole目录下 ./configure --with-php0-config=/home/usr/local/php/bin/php-config (check操作) ; make &&make install;最后会生成一个so的扩展文件(会自动显示该so扩展文件的路径,一般在lib/php/extensions/ 的目录下);在lib/php.ini 下,增加 extension=swoole;
  4. 查看php的模块 php -m

swoole课程4-网络通讯

tcp基本四步走
  1. 创建server对象
  2. 监听连接进入事件
  3. 监听数据接收事件; 发送客户端, s e r v − > s e n d ( serv->send( serv>send(fd, "Server: ".$data);
  4. 监听关闭事件
  5. 启动服务器
$serv = new Swoole\Server("127.0.0.1", 9501);
$serv->set([
    'worker_num' => 4,    //worker process num
    'max_request'=>10000
]);

//监听连接进入事件
$serv->on('Connect', function ($serv, $fd) {
   
    echo "Client: Connect.\n";
});

//监听数据接收事件
$serv->on('Receive', function ($serv, $fd, $from_id, $data) {
   
    $serv->send($fd, "Server: ".$data);
});

//监听连接关闭事件
$serv->on('Close', function ($serv, $fd) {
   
    echo "Client: Close.\n";
});

//启动服务器
$serv->start();
udp基本三步走
  1. 创建server对象
  2. UDP服务器与TCP服务器不同,UDP没有连接的概念。启动Server后,客户端无需Connect,直接可以向Server监听的9502端口发送数据包;里边传输数据用 s e r v e r − > s e n d t o ( server->sendto( server>sendto(address, p o r t , port, port,data).
  3. 启动服务器
$serv = new Swoole\Server("127.0.0.1",9502,SWOOLE_PROCESS,SWOOLE_SOCK_UDP);
$serv->set([
    'worker_num' => 4,    //worker process num
    'max_request'=>10000
]);
//UDP服务器与TCP服务器不同,UDP没有连接的概念。启动Server后,客户端无需Connect,直接可以向Server监听的9502端口发送数据包。对应的事件为onPacket
$serv->on('Packet',function($serv,$data,$clientInfo){
   
    $serv->sendto($clientInfo['address'], $clientInfo['port'], "Server ".$data);
    var_dump($clientInfo);
    var_dump($data);
});

//启动服务器
$serv->start();
http服务基本三步走
  1. 创建对象
  2. 设置静态资源目录
  3. 接收前端数据,响应返回数据
  4. 开启http服务器
$http = new swoole_http_server("0.0.0.0", 9501);
// 配置 这里设置了该项,浏览器路由加了,index.html ,代码就不会执行西下边的输出
$http->set([
            'enable_static_handler'=>true,
            'document_root'=>'/home/swoole-mooc/demo/data',
]);
$http->on('request',function($request,$response){
   
    print_r($request->get);
    $response->cookie('login','cook-name',time()+3600);//给当前服务设置一个cookie
    $response->header("Content-Type", "text/html; charset=utf-8");
    $response->end(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值