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() #是否已連接到服務器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM