這篇文章將為大家詳細講解有關workerman的使用示例,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
為大廠等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及大廠網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站建設、做網(wǎng)站、大廠網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!workerman是一個高性能的PHP socket 服務器框架,workerman基于PHP多進程以及l(fā)ibevent事件輪詢庫,PHP開發(fā)者只要實現(xiàn)一兩個接口,便可以開發(fā)出自己的網(wǎng)絡應用,例如Rpc服務、聊天室服務器、手機游戲服務器等。
workerman的目標是讓PHP開發(fā)者更容易的開發(fā)出基于socket的高性能的應用服務,而不用去了解PHP socket以及PHP多進程細節(jié)。
workerman本身是一個PHP多進程服務器框架,具有PHP進程管理以及socket通信的模塊,所以不依賴php-fpm、nginx或者apache等這些容器便可以獨立運行。
PHP進程管理:類似于操作系統(tǒng)的進程管理。
socket:網(wǎng)絡上的兩個程序通過一個雙向的通信連接實現(xiàn)數(shù)據(jù)的交換,這個連接的一端稱為一個socket。
服務端開發(fā)示例WebSocket Server
1、新建文件start.php
count = 4; // 當收到客戶端發(fā)來的數(shù)據(jù)后返回hello $data給客戶端 $ws_worker->onMessage = function($connection, $data) { // 向客戶端發(fā)送hello $data $connection->send('hello ' . $data); }; // 運行 Worker::runAll();
2、啟動服務:
php start.php start -d
使用以上的語句啟動start.php ,創(chuàng)建一個Worker監(jiān)聽2346端口,使用websocket協(xié)議通訊并且啟動四個進程對外服務,當收到請求時會傳送數(shù)據(jù)給客戶端。
3、查看workerman運行狀態(tài):
php start.php status
wokerman 的幾大特性:
純PHP開發(fā)
workerman完全使用PHP開發(fā),使用workerman開發(fā)的應用程序不依賴php-fpm、apache、nginx這些容器就可以獨立運行。 這使得PHP開發(fā)者開發(fā)、部署、調(diào)試應用程序非常方便。
支持PHP多進程
為了充分發(fā)揮服務器多CPU的性能,workerman默認支持多進程多任務。workerman開啟一個主進程和多個子進程對外提供服務, 主進程負責監(jiān)控子進程退出信號,并負責生成新的子進程去處理服務,這樣做不僅提高了應用程序的性能,而且使得workerman更加穩(wěn)定。
支持TCP、UDP
workerman支持TCP和UDP兩種傳輸層協(xié)議,只需要更改配置的一個字段,便可以更換傳輸層協(xié)議,業(yè)務代碼無需任何改動。
支持長連接
很多時候需要PHP應用程序要與客戶端保持長連接,比如聊天室、游戲等,但是傳統(tǒng)的PHP容器(apache、nginx、php-fpm)很難做到這一點。 使用workerman可以輕松使用PHP長連接。php單個進程可以支持幾千甚至幾萬的并發(fā)連接,多進程則可支持數(shù)十萬甚至上百萬的并發(fā)連接。
支持各種應用層協(xié)議
接口上支持各種應用層協(xié)議,包括自定義協(xié)議。Workerman默認支持的協(xié)議有HTTP、WebSocket、以及簡單的Text文本協(xié)議。 同時Workerman提供了通用的協(xié)議接口,開發(fā)者基于此接口便可以方便的開發(fā)出自己的協(xié)議。
支持高并發(fā)
workerman支持Libevent事件輪詢庫(需要安裝Libevent擴展), 使用Libevent在高并發(fā)時性能非常卓越,如果沒有安裝Libevent則使用PHP內(nèi)置的Select相關系統(tǒng)調(diào)用。
關于“workerman的使用示例”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。