PHP語言的高性能網絡通訊框架,提供了PHP語言的異步多線程服務器,異步TCP/UDP網絡客戶端,異步MySQL,數據庫鏈接池,AsyncTask,消息隊列,毫秒定時器,異步文件讀寫,異步DNS查詢。
Swoole能夠普遍應用於互聯網、移動通訊、企業軟件、網絡遊戲、物聯網、車聯網、智能家庭等領域。 使用PHP+Swoole做爲網絡通訊框架,可使企業IT研發團隊的效率大大提高,更加專一於開發創新產品。php
workerman是一個高性能的PHP socket 服務器框架,workerman基於PHP多進程以及libevent事件輪詢庫,PHP開發者只要實現一兩個接口,即可以開發出本身的網絡應用,例如Rpc服務、聊天室服務器、手機遊戲服務器等。html
workerman的目標是讓PHP開發者更容易的開發出基於socket的高性能的應用服務,而不用去了解PHP socket以及PHP多進程細節。 workerman自己是一個PHP多進程服務器框架,具備PHP進程管理以及socket通訊的模塊,因此不依賴php-fpm、nginx或者apache等這些容器即可以獨立運行。nginx
通常不多有用PHP作服務的, 可是若是你的已有業務邏輯都是PHP實現的, 而如今卻須要基於已有的業務邏輯提供一套Socket服務, 怎麼辦?數據庫
固然, 解決方法不少, 但最簡單的辦法, 仍是直接使用PHP作Socket服務.apache
而這樣作要解決的問題有不少, 主要要解決的問題有以下幾個:服務器
最近,我就基於PHP的pcntl擴展實現一個簡單的提供Socket服務的框架. 取其名爲Mpass(Multi-Processes Socket Server).網絡
主要結構以下:多線程
我以前的文章PHP CLI模式下的多進程應用介紹過在PHP作服務的時候如何避免內存泄露, 因此基於此, 再加上PHP5之後的stream_socket_*系列API, 就完成了這一套框架.框架
至於Graceful restart, 經過pcntl_signal函數, 在接受到restart/shutdown信號時刻, 作關閉清理動做, 保證不會由於重啓/關閉而使得正在執行的邏輯出錯.
有相似需求的朋友, 能夠借鑑.
項目地址&下載地址 : Mpass