swoole學習筆記

2022-09-12 20:39:19 字數 1239 閱讀 2770

一、服務端

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

));/*

定時器*/

$i = 0;

$timer = timer::tick(1000,function ($timerid) use (&$i,$server,$fd,$after

));

二、客戶端

0. 方法

$client->isconnected() #是否已連線到伺服器

swoole學習筆記一

管理程序manager 非同步reactor執行緒 全非同步非阻塞 同步或者非同步worker程序,沒有用到epoll task worker程序 完全是同步阻塞模式 factory task 如果reactor最大允許監聽的事件數比reactor的事件數小的話用poll select,否則用epo...

swoole 學習筆記(1)

解壓 configure make make install tips php i grep php.ini 檢視php.ini 配置檔案位置 獲取原始碼 swoole官網 phpize 生成configure 檔案 configure make make install configure ena...

Swoole學習 Swoole入門指南

初識swoole swoole官網 swoole官方文件 入門書籍 tcp ip網路程式設計 尹聖雨 韓 深入書籍 unix環境高階程式設計 中文第三版 unix網路程式設計卷1 套接字聯網 unix網路程式設計卷2 程序間通訊 版本已更新至4.3.x。swoole2.0增加協程。swoole3.0...