swoole是什么語言編寫的
Swoole是一個(gè)面向生產(chǎn)環(huán)境的 PHP 異步網(wǎng)絡(luò)通信引擎,PHP的異步、并行、高性能網(wǎng)絡(luò)通信引擎,使用純C語言編寫,提供了多種通信協(xié)議的異步IO服務(wù)器和客戶端。Swoole2.0 支持了類似Go語言的協(xié)程 ,可以使用完全同步的代碼實(shí)現(xiàn)異步程序。
推薦學(xué)習(xí): swoole教程
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ò)庫。