1. 程式人生 > >對Swoole、Workerman和php自帶的socket的理解

對Swoole、Workerman和php自帶的socket的理解

開源項目 局限性 ole 來源 worker 建議 般的 detail 管理

為什麽php自帶的socket不怎麽聽說,基本都是用swoole,workerman去實現?

1、PHP的socket擴展是一套socket api,僅此而已。

swoole,用C實現,它的socket是C 庫的socket,更加底層可控。

workerman,如題主所說,使用PHP實現,那它的socket就是用PHP socket擴展啊。只是對其進行工程化開發,成了一個框架。

2、swoole 框架和 swoole 擴展是不一樣的。

swoole 框架也可以脫離 swoole 擴展來使用。

swoole 擴展將進程管理,tcp 監聽這些工作在 C 裏面做了,以擴展的形式提供給 PHP 一些接口來調用。

workerman 就是原生的使用 php stream 相關的函數來監聽 tcp,進行進程管理。

如果你想學習 PHP 開發 tcp 的原理建議看 workerman 的源碼,如果你只是想使用,用 swoole 就 OK 了。

3、就是一個底層通信框架,基於socket通信的,

其實PHP 也能做多進程編程(擴展支持,workerman是這方面NO.1),swoole使用C 實現的一套PHP擴展,基於它也是做這方面的功能,因為這兩個底層框架的存在,大大擴展了PHP的應用範圍,和不錯的未來期望

4、php現有的應用方式都是基於http的,

對於需要快速實時響應的情況比較乏力,比如網絡遊戲或者推送服務一般都需要與用戶長期保持一個tcp連接以便實時響應和推送信息。

swoole就是解決這樣應用場景的。

這個是讓php自身建立一個服務,不需要nginx之類的代理,直接監聽端口實現通信。

一種應用方式也可以代替掉nginx做http服務,但一般不會這麽用。

5、實際上作為一名PHP程序員,我很清楚PHP的確有很多局限性,

比如Unix系統編程、網絡通信編程、異步io,大部分PHPer不懂。PHP界也確實沒有這樣的東西。Swoole開源項目就是為了彌補PHP在這些方面的缺陷誕生的。與WordPress這些產品不同,swoole實際上是一個網絡通信和異步io的引擎,一個基礎庫。PHPer可以基於swoole去實現過去PHP無法實現的功能。swoole為PHPer打開了通往另一個世界的大門。

6、這2個框架都很出名,它們的出現大大的提高了php的應用範圍及知名度

workerman和swoole都是php socket 服務器框架,都支持長連接、tcp和udp、websocket、異步、分布式部署等

workerman純php寫的,swoole是php的c擴展,性能肯定更高,百度、騰訊不少產品的server就是基於swoole的

workerman上手更快,文檔更豐富,社區活躍,社區基本做到有問必答,一般的中小型項目也夠了,所以初學者最好還是使用workerman,熟了後再根據具體業務權衡(官方網站都有壓測數據)


---------------------
作者:風信子it
來源:CSDN
原文:https://blog.csdn.net/caotianyin/article/details/79657008
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

對Swoole、Workerman和php自帶的socket的理解