Swoole到底是個什麼東西?
來源:互聯網
上載者:User
關鍵字
PHP
Swoole
node
js
一定要匿名!Swoole,據說是一個非同步處理很牛逼的東西!但是他到底是什嗎?PHP擴充?為什麼有人經常用他和node.js之類的做對比!
他和PHP是什麼關係!請非常直白的說下!哦對了!愛php~
回複內容:
這個要回答下,樓上在說PHP的swoole架構,被黑的有點慘。實際上swoole擴充和PHP的架構並沒有關係。
一直以來在其他程式設計語言程式員心目中PHP就是個套HTML頁面的。所謂PHP程式員就是搞WordPress、discuz二次開發,一個月拿三五千的loser,和我大Java工程師相比簡直low爆了。
但大家黑了PHP半天,才發現PHP最近這幾年反而越來越流行了,PHPer們的工資可一點都不低。就拿我司來說吧,之前面過一個PHP程式員工作三年多,水平一般吧,後來公司開價2萬/m收了。水平好一點的平均都在3-4萬/m。
實際上作為一名PHP程式員,我很清楚PHP的確有很多局限性,比如Unix系統編程、網路通訊編程、非同步io,大部分PHPer不懂。PHP界也確實沒有這樣的東西。Swoole開源項目就是為了彌補PHP在這些方面的缺陷誕生的。與WordPress這些產品不同,swoole實際上是一個網路通訊和非同步io的引擎,一個基礎庫。PHPer可以基於swoole去實現過去PHP無法實現的功能。swoole為PHPer開啟了通往另一個世界的大門。php現有的應用方式都是基於http的,對於需要快速即時響應的情況比較乏力,比如網路遊戲或者推送服務一般都需要與使用者長期保持一個tcp串連以便即時響應和推送資訊。
swoole就是解決這樣應用情境的。
這個是讓php自身建立一個服務,不需要nginx之類的代理,直接監聽連接埠實現通訊。
一種應用方式也可以代替掉nginx做http服務,但一般不會這麼用。php與外部通訊需要藉助系統的socket。
通常使用的Apache nginx就是封裝了的socket,可以實現並發處理。用戶端發送請求到nginx/apache,再轉寄到fastcgi連接埠交給php處理
swoole把系統的socket整合到php底層,php可以直接通過swoole與用戶端互動。
也就是說swoole是個封裝了底層socket的網路程式庫。Swoole之於PHP正如Node.js之於JavaScript.就是一個底層通訊架構,基於socket通訊的,其實PHP 也能做多進程編程(擴充支援,workerman是這方面NO.1),swoole使用C 實現的一套PHP擴充,基於它也是做這方面的功能,因為這兩個底層架構的存在,大大擴充了PHP的應用範圍,和不錯的未來期望@韓天峰