對Swoole、Workerman和php自帶的socket的理解
為什麽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的理解