對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,熟了後再根據具體業務權衡(官方網站都有壓測資料)
參考文獻
[2]H. Berenson, P. Bernstein, J. Gray, J.Melton, E. O’Neil,and P. O’Neil. A critique of ANSI SQL isolation levels. InProceedings of the SIGMOD International Conference on Management of Data, pages1–10, May 1995.
[3]Michael J. Cahill, Uwe Röhm, and Alan D.Fekete. 2008. Serializable isolation for snapshot databases. In SIGMOD ’08:Proceedings of the 2008 ACM SIGMOD international conference on Management of data, pages 729–738, New York, NY, USA. ACM.
[4]Michael James Cahill. 2009. Serializable Isolation for Snapshot Databases. Sydney Digital Theses. University of Sydney, School of Information Technologies
[5] A. Fekete, D. Liarokapis, E. O’Neil, P.O’Neil, andD. Shasha. Making snapshot isolation serializable. www.codexueyuan.com In ACM transactions on database systems, volume 39(2), pages 492–528, June 2005.
相關文章
- PHP socket 的簡單理解PHP
- PHP 高效能框架 Workerman 憑什麼能硬剛 Swoole ?PHP框架
- 關於OPcache對Swoole影響的理解opcache
- websocket gateway 中介軟體可替換 workerman 和 swoole 部分功能WebGateway
- PHP 的自帶記憶體共享 APCu 和 shmPHP記憶體
- 深入理解 PHP 高效能框架 Workerman 守護程序原理PHP框架
- php 自帶datetime類的使用PHP
- php swoolePHP
- 關於C++、PHP和SwooleC++PHP
- socket,TCP/IP的理解TCP
- php的socket通訊PHP
- PHP之Swoole 學習筆記-用做飯的方式來理解協程PHP筆記
- 在 Laravel 中使用 Workerman 進行 socket 通訊Laravel
- workerman / 小談PHP中的幾種執行模式PHP模式
- 這才是 PHP 高效能框架 Workerman 的立命之本PHP框架
- Socket理解
- Socket 理解
- PHP+Swoole的閉包寫法PHP
- 對session和cookie的理解SessionCookie
- 【OSX】OSX下采用MAMP的PHP替換系統自帶PHPPHP
- 對 PHP 後期靜態繫結的理解PHP
- PHP 編寫基本的 Socket 程式PHP
- php的鏈式操作的理解和應用PHP
- 對AIDL和Binder的理解AI
- mac 下利用自帶的php 和apache 搭建 phpstorm+git+xdebug+mysql 的php開發環境MacPHPApacheORMGitMySql開發環境
- TCP socket和web socket的區別TCPWeb
- Python中關於++和—(自增和自減)的理解Python
- PHP socket初探PHP
- Light-PHP 基於 swoole 的高效能 PHP 框架PHP框架
- PHP-FPM vs SwoolePHP
- Mac OSX 下配置系統自帶的 apache+phpMacApachePHP
- alpine系統php8的dockerfile(swoole使用)PHPDocker
- PHP引用的&理解PHP
- 我對部落格的理解和看法
- 對與locale和resourceBundle的理解
- 對javascript中的call()和apply()的理解JavaScriptAPP
- 理解socket.io(一)---相關的APIAPI
- 深入理解PHP之isset和array_key_exists對比PHP