zoukankan      html  css  js  c++  java
  • swoole学习笔记

    一、服务端


    0. swoole常用的配置项:
      daemonize = true 守护进程化
      worker_num #swoole配置参数 设置启动的Worker进程数: 如 1 个请求耗时 100ms,要提供 1000QPS 的处理能力,那必须配置 100 个进程或更多。
      reactor_num #线程数
      task_worker_num #配置 Task 进程的数量
    1. 几个重要的id:
      $server->master_pid #主进程的 PID 跟pid_file文件存放的PID、netstat -tlunp | grep 6998 中的PID保持一致
      $fd 客户端连接的唯一标识符
      $server->manager_pid #当前服务器管理进程的 PID ??? 与master_pid的区别 管理进程与主进程的区别
      $server->worker_id #获得当前Worker进程编号, 包括Task进程 Worker进程的范围是[0, worker_num - 1]; Task进程范围 [worker_num, worker_num + task_worker_num -1 ] 要深刻理解这两个范围
      $server->worker_pid #得到Worker进程的操作系统进程ID 与posix_getpid() 的返回值相同 如worker_id = 0 则 worker_pid = 76845

    2. 其他属性
      $server->taskworker #当前进程是否是Task进程 true Task进程 / false Worker进程
      $server->connections #连接跌代器 和 $server->getClientList()一致, connections不是数组或对象, 只能用foreach访问, 里面存的是$fd

    3. 定时器

    /*延时执行*/
    $after = Timer::after(10000,function () use ($server,$fd){   $server->send($fd, 'abc'); }); /*定时器*/ $i = 0; $timer = Timer::tick(1000,function ($timerId) use (&$i,$server,$fd,$after){   $i++;   $server->send($fd, $i);   if ($i==8) Timer::clear($after);   if ($i==10) Timer::clear($timerId); });

    二、客户端
    0. 方法
    $client->isConnected() #是否已连接到服务器

    If the copyright belongs to the longfei, please indicate the source!!!
  • 相关阅读:
    python中字典一键多相同值反转技巧
    win10下安装mysql
    上台阶问题的具体走法用python来实现
    桥接模式
    适配器模式
    多线程中lock的使用
    原型模式
    多线程
    建造者模式
    代理模式
  • 原文地址:https://www.cnblogs.com/longfeiPHP/p/15571513.html
Copyright © 2011-2022 走看看