swoole是一個用C寫的php擴展,實現(xiàn)了網(wǎng)絡(luò)層的很多功能 (推薦學(xué)習(xí): swoole視頻教程)
實際上作為一名PHP程序員,我很清楚PHP的確有很多局限性,比如Unix系統(tǒng)編程、網(wǎng)絡(luò)通信編程、異步io,大部分PHPer不懂。PHP界也確實沒有這樣的東西。Swoole開源項目就是為了彌補PHP在這些方面的缺陷誕生的。
與WordPress這些產(chǎn)品不同,swoole實際上是一個網(wǎng)絡(luò)通信和異步io的引擎,一個基礎(chǔ)庫。PHPer可以基于swoole去實現(xiàn)過去PHP無法實現(xiàn)的功能。swoole為PHPer打開了通往另一個世界的大門。
php現(xiàn)有的應(yīng)用方式都是基于http的,對于需要快速實時響應(yīng)的情況比較乏力,比如網(wǎng)絡(luò)游戲或者推送服務(wù)一般都需要與用戶長期保持一個tcp連接以便實時響應(yīng)和推送信息。
swoole就是解決這樣應(yīng)用場景的。
這個是讓php自身建立一個服務(wù),不需要nginx之類的代理,直接監(jiān)聽端口實現(xiàn)通信。
一種應(yīng)用方式也可以代替掉nginx做http服務(wù),但一般不會這么用。
php與外部通信需要借助系統(tǒng)的socket。
通常使用的Apache nginx就是封裝了的socket,可以實現(xiàn)并發(fā)處理。客戶端發(fā)送請求到nginx/apache,再轉(zhuǎn)發(fā)到fastcgi端口交給php處理
swoole把系統(tǒng)的socket集成到php底層,php可以直接通過swoole與客戶端交互。
也就是說swoole是個封裝了底層socket的網(wǎng)絡(luò)庫。
php socket
swoole:定時器,長連接,消息隊列