Swoole學習 Swoole入門指南

2022-07-16 09:42:09 字數 2690 閱讀 1525

初識swoole

swoole官網:

swoole官方文件:       

入門書籍:《tcp/ip網路程式設計(尹聖雨 韓)》。

深入書籍:《unix環境高階程式設計(中文第三版)》;《unix網路程式設計卷1:套接字聯網》;《unix網路程式設計卷2:程序間通訊》。

版本已更新至4.3.x。swoole2.0增加協程。swoole3.0以上版本要求php>=7.0。

開發輔助工具

swoole 4.x速查表:

ide提示工具:

這2個工具挺實用的,截圖如下:

swoole入門指引

swoole底層是c寫的。swoole系列函式可以理解為swoole提供給php的api,php通過swoole系列函式呼叫swoole的api,來啟動swoole服務、註冊**函式等,swoole的事件驅動來執行對應的**函式。這完全區別於普通的php擴充套件只提供庫函式,而對於swoole,php只是傳遞的作用,真正的程式控制權是swoole。

學習swoole的基礎知識

linux是必須的。學習swoole需要對程序、執行緒、非同步同步、io復用、reactor模型、程序間通訊、訊號等概念有所了解,可學習《tcp/ip網路程式設計》這本書做簡單的理解,通過php對應的擴充套件,借鑑workman原始碼來理解機制,這樣會對swoole的學習有很大幫助。

swoole並沒有用libevent,所以不需要安裝libevent。swoole並不依賴php的stream/sockets/pcntl/posix/sysvmsg等擴充套件

swoole提供的功能庫

swoole提供了哪些功能給我們用,以為我們用到哪些服務時,可以用swoole來幫我們實現。

http服務 ,編寫乙個簡單的web server。

tcp/udp服務 ,編寫乙個訊息接受處理系統。

非同步,可以非同步的處理請求。

併發 ,可以併發的處理同乙個業務邏輯。

socket,socket通訊處理技術。

毫秒級別定時器,可以在php中使用定時器了。

協程,相比執行緒更穩定和好用。

如果你的業務中,有用到以上等特性,你又在用使用php,那麼完全可以用swoole來完成了,再具體點的場景如下:

1、網際網路;    2、移動通訊;   3、企業軟體;   4、雲計算;   5、網路遊戲;   6、物聯網(iot);   7、車聯網;   8、智慧型家居等領域

swoole的框架

swoft 首個基於 swoole 原生協程的新時代 php 高效能協程全棧框架,內建協程網路伺服器及常用的協程客戶端,常駐記憶體,不依賴傳統的 php-fpm,全非同步非阻塞 io 實現,以類似於同步客戶端的寫法實現非同步客戶端的使用,沒有複雜的非同步**,沒有繁瑣的 yield, 有類似 go 語言的協程、靈活的註解、強大的全域性依賴注入容器、完善的服務治理、靈活強大的 aop、標準的 psr 規範實現等等,可以用於構建高效能的web系統、api、中介軟體、基礎服務等等。

easyswoole easyswoole 是一款基於swoole server 開發的常駐記憶體型php框架,專為api而生,擺脫傳統php執行模式在程序喚起和檔案載入上帶來的效能損失。easyswoole 高度封裝了swoole server 而依舊維持swoole server 原有特性,支援同時混合監聽http、自定義tcp、udp協議,讓開發者以最低的學習成本和精力編寫出多程序,可非同步,高可用的應用服務。

swooledistributed swooledistributed 老牌swoole框架擁有最完善的開發工具以及最強大的功能,首創sdhelper開發者工具包和開發者除錯命令集,可以進行單元測試,捕獲客戶端流量分析,視覺化的進行遠端斷點聯調,還具備**覆蓋率檢測的功能(swoole與xdebug擴充套件不相容,sdhelper無需xdebug擴充套件),並且內建元件極其豐富(類mqtt強悍的訂閱發布/actor模型/記憶體快取記憶體/事件派發/程序管理/定時任務/amqp任務排程/後台監控/集群/微服務/rpc/非同步連線池/自定義命令等等),開發者可以直接使用加快開發進度。幾乎所有的功能都支援集群化,單機切換到集群無需對**做任何的修改。如果業務開發比較複雜比如(遊戲開發)那麼sd框架將是你的不二之選。

swoole程序結構

master主程序

manager管理程序

worker子程序

task任務程序

mainreactor主線程

reactor執行緒組

swoole的程序/執行緒模型

swoole程式的執行流程

swoole 入門學習

swoole與workerman比較,摘自知乎 git clone cd swoole phpize configure with php config www server php 70 bin php config 在php.ini加入 extension www server php 70 l...

swoole學習筆記

一 服務端 0.swoole常用的配置項 daemonize true 守護程序化 worker num swoole配置引數 設定啟動的worker程序數 如 1 個請求耗時 100ms,要提供 1000qps 的處理能力,那必須配置 100 個程序或更多。reactor num 執行緒數 tas...

swoole 編譯安裝 最新swoole

適用於php5.3以上版本 centos7中 在此 選擇合適的版本,我用的是4.2.9 wget tar zxvf swoole 4.2.9.tgz cd swoole 4.2.9 phpize configure with php config usr local php bin php conf...