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