Workerman是一款由純PHP開發的開源高效能的PHP socket 服務框架。
實際上Workerman類似一個PHP版本的nginx,核心也是多進程 Epoll 非阻塞IO。 Workerman每個行程能維持上萬並發連線。由於本身常住內存,不依賴Apache、nginx、php-fpm這些容器,擁有超高的效能。 (推薦學習: workerman教學)
同時支援TCP、UDP、UNIXSOCKET,支援長連接,支援Websocket、HTTP、WSS、HTTPS等通訊協以及各種自訂協定.擁有定時器、非同步socket客戶端、非同步Mysql、非同步Redis、非同步Http、非同步訊息佇列等眾多高效能元件。
1、純PHP開發
使用WorkerMan開發的應用程式不依賴php-fpm、apache、nginx這些容器就可以獨立運作。這使得PHP開發者開發、部署、調試應用程式非常方便。
2、支援PHP多進程
為了充分發揮伺服器多CPU的效能,WorkerMan預設支援多進程多任務。 WorkerMan開啟一個主進程和多個子進程對外提供服務, 主進程負責監控子進程,子進程獨自監聽網路連接並接收發送及處理數據,由於進程模型簡單,使得WorkerMan更加穩定,更加高效。
3、支援TCP、UDP
WorkerMan支援TCP和UDP兩種傳輸層協議,只需要更改一個屬性便可以更換傳輸層協議,業務代碼無需改動。
4、支援長連接
很多時候需要PHP應用程式要與客戶端保持長連接,例如聊天室、遊戲等,但傳統的PHP容器( apache、nginx、php-fpm)很難做到這一點。
使用WorkerMan,只要服務端業務不主動呼叫關閉連接接口,便可使用PHP長連線。 WorkerMan單一進程可以支援上萬的並發連接,多進程則支援數十萬的甚至百萬並發連接。
5、支援各種應用層協定
WorkerMan介面上支援各種應用層協議,包括自訂協定。在WorkerMan中更換協議同樣非常簡單,同樣只是配置一個字段,協議自動切換,業務代碼零改動,甚至可以開啟多個不同協議的端口,滿足不同的客戶端需求。
6、支援高並發
WorkerMan支援Libevent事件輪詢庫(需要安裝Libevent擴充功能), 使用Libevent在高並發時效能非常卓越,如果沒有安裝Libevent則使用PHP內建的Select相關係統調用,效能也同樣非常強悍。
以上是workerman好用嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!