天天看點

workerman和swoole的差別

workerman和swoole都是php socket 伺服器架構,都支援長連接配接、tcp和udp、websocket、異步、分布式部署等

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

workerman上手更快,文檔更豐富,社群活躍,社群基本做到有問必答。

性能上Swoole畢竟是C語言開發的,在某些地方如記憶體管理、資料結構、通信協定解析上肯定要比PHP開發的workerman高。

功能上swoole提供的進階特性很多,列舉幾個workerman沒有的吧,比如SSL/TLS隧道加密、http2.0、異步mysql驅動、異步redis驅動、異步的http/websocket用戶端、process、lock、atomic、table。另外Swoole 2.0内置了PHP原生協程的支援,PHP代碼也可以使用類似于Go語言的協程來實作高并發的網絡伺服器。

外部依賴上workerman需要依賴很多額外的第三方PHP擴充來實作,局限性比較大,這些擴充并非是PHP官方維護的,維護性方面良莠不齊,有些擴充連PHP7都不支援,數年沒人維護。而Swoole基本上無依賴,底層的代碼全部可控。

開發維護方面,Swoole的開發團隊目前有大概18人左右,開發者基本上都是來自騰訊、百度、阿裡、滴滴、微網誌等國内一線網際網路企業,支援維護的團隊更穩定。

當然workerman的優勢是它完全使用PHP代碼實作,開發者可以直接看它的源碼。有特殊需求也可以直接改源碼來實作。如果換成swoole就不是那麼簡單了。

workerman做的事情更多一些,即是架構又是工具和完整的解決方案,對于沒有太多後端程式設計功底的程式員也來說确實會容易很多。

而swoole實際上隻是一個底層庫,不是拿來可用的完整産品,基于swoole有很多PHP的架構和程式,比如tsf、zan php framework、hprose-swoole、zphp、swoole/framework、blink、dorarpc、SwooleDistributed等等,普通開發者可以直接基于這些項目進行開發。

Swoole是給高手用的,門檻比較高,需要使用者有深厚的功底。你這裡問的哪個更容易開發,這個沒辦法回答,這個要看你要開發什麼、團隊或個人的實際情況如何,合适的才是最好的。