beyodPHP Socket 網(wǎng)絡(luò)應(yīng)用框架
beyod: 一個(gè)高性能分布式、事件驅(qū)動(dòng)、異步非阻塞php socket網(wǎng)絡(luò)應(yīng)用框架
beyod是基于Libevent/epoll/Yii2 Framework的高性能分布式、事件驅(qū)動(dòng)、異步非阻塞php實(shí)現(xiàn)的socket網(wǎng)絡(luò)服務(wù)開(kāi)發(fā)框架。 具備可擴(kuò)展的網(wǎng)絡(luò)協(xié)議支持架構(gòu),可以開(kāi)發(fā)任何TCP/UDP層上的網(wǎng)絡(luò)應(yīng)用。可用于物聯(lián)網(wǎng)、網(wǎng)絡(luò)游戲、WEB、WebSocket、服務(wù)器推送、分布式網(wǎng)絡(luò)應(yīng)用服務(wù)等領(lǐng)域。
PHP被廣泛用于web開(kāi)發(fā)領(lǐng)域,但在socket服務(wù)方式較少使用,導(dǎo)致形成了一種錯(cuò)誤的觀點(diǎn):PHP只能用于網(wǎng)站。
事實(shí)上,PHP通過(guò)模塊方式可以擴(kuò)展自身功能,內(nèi)置的socket支持, 完全可以實(shí)現(xiàn)一個(gè)socket服務(wù)器。
借助Libui擴(kuò)展,也可以實(shí)現(xiàn)桌面軟件界面的開(kāi)發(fā)。
beyod, 是beyond的縮寫,意思是另一個(gè),另一邊的的意思,所以beyod的目的也是尋求php在另外一個(gè)領(lǐng)域的(socket服務(wù)器)實(shí)踐。
==beyod本質(zhì)是以PHP命令行方式運(yùn)行實(shí)現(xiàn)完整的socket服務(wù)器,所以它無(wú)須nginx/Apache/php-fpm環(huán)境,就可以獨(dú)立運(yùn)行。==
beyod吸收并借鑒了Nginx/ReactPHP/Workerman/Swoole/Yii/等流行的技術(shù)方案,從而實(shí)現(xiàn)快速開(kāi)發(fā)網(wǎng)絡(luò)應(yīng)用服務(wù)。
特性:
-
事件驅(qū)動(dòng)、異步非阻塞、多進(jìn)程單線程架構(gòu)(Nginx/node.js相同的進(jìn)程架構(gòu))。
-
純PHP代碼實(shí)現(xiàn),所有代碼開(kāi)源,開(kāi)發(fā)參考易于上手。
-
高性能,PHP命令行長(zhǎng)駐內(nèi)存方式運(yùn)行, 省去了傳統(tǒng)的基于請(qǐng)求的資源分配和釋放。另外得益于基于libevent非阻塞網(wǎng)絡(luò)模型,不必為每個(gè)連接分配線程或進(jìn)程。
-
支持大量并發(fā)連接,理論上,只要內(nèi)存足夠大,連接數(shù)是無(wú)上限的。測(cè)試中,單機(jī)10萬(wàn)tcp連接時(shí),消耗內(nèi)存僅2.4GB。
-
穩(wěn)定可靠,可長(zhǎng)時(shí)間運(yùn)行, 工作進(jìn)程崩潰自動(dòng)恢復(fù)。
使用Master-worker方式的多進(jìn)程、單線程模型。實(shí)現(xiàn)了工作進(jìn)程異常崩潰后的自動(dòng)重啟, 我們熟知的Nginx也使用了Master-worker進(jìn)程模型,從而實(shí)現(xiàn)進(jìn)程高可用性。 -
豐富的網(wǎng)絡(luò)協(xié)議支持
支持TCP、UDP、Unix、SSL, 內(nèi)置HTTP/WebSocket/Async Redis/Async TCP Client, 并支持自定義數(shù)據(jù)包解析,從而實(shí)現(xiàn)任何應(yīng)用層協(xié)議。 -
SSL/reuse_port/cluster dispatcher/工作進(jìn)程平滑重啟等特性, 單個(gè)進(jìn)程中可實(shí)現(xiàn)多端口監(jiān)聽(tīng)、多個(gè)協(xié)議支持。
-
毫秒級(jí)定時(shí)器。
-
基于Yii2 Console框架開(kāi)發(fā),Yii2是一個(gè)事件驅(qū)動(dòng)高性能主流PHP框架,內(nèi)置完整的PHP命令行運(yùn)行支持,內(nèi)置功能模塊豐富,組件化架構(gòu)使整個(gè)系統(tǒng)易于擴(kuò)展。
-
豐富的數(shù)據(jù)庫(kù)支持和組件化擴(kuò)展。
得益于yii框架的底層支持,支持大量的業(yè)務(wù)層功能需求,熟悉Yii web框架者可以直接上手實(shí)現(xiàn)業(yè)務(wù)層功能。
beyod不僅是一個(gè)網(wǎng)絡(luò)底層開(kāi)發(fā)框架,更是一個(gè)網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)框架,可快速實(shí)現(xiàn)業(yè)務(wù)功能。 -
易于擴(kuò)展,beyod使用composer/psr標(biāo)準(zhǔn)結(jié)構(gòu),可以很容易使用第三方PHP框架實(shí)現(xiàn)業(yè)務(wù)功能。
