您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關workerman的使用示例,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
workerman是一個高性能的PHP socket 服務器框架,workerman基于PHP多進程以及libevent事件輪詢庫,PHP開發者只要實現一兩個接口,便可以開發出自己的網絡應用,例如Rpc服務、聊天室服務器、手機游戲服務器等。
workerman的目標是讓PHP開發者更容易的開發出基于socket的高性能的應用服務,而不用去了解PHP socket以及PHP多進程細節。
workerman本身是一個PHP多進程服務器框架,具有PHP進程管理以及socket通信的模塊,所以不依賴php-fpm、nginx或者apache等這些容器便可以獨立運行。
PHP進程管理:類似于操作系統的進程管理。
socket:網絡上的兩個程序通過一個雙向的通信連接實現數據的交換,這個連接的一端稱為一個socket。
服務端開發示例WebSocket Server
1、新建文件start.php
<?php use Workerman\Worker; require_once './Workerman/Autoloader.php'; // 創建一個Worker監聽2346端口,使用websocket協議通訊 $ws_worker = new Worker("websocket://0.0.0.0:2346"); // 啟動4個進程對外提供服務 $ws_worker->count = 4; // 當收到客戶端發來的數據后返回hello $data給客戶端 $ws_worker->onMessage = function($connection, $data) { // 向客戶端發送hello $data $connection->send('hello ' . $data); }; // 運行 Worker::runAll();
2、啟動服務:
php start.php start -d
使用以上的語句啟動start.php ,創建一個Worker監聽2346端口,使用websocket協議通訊并且啟動四個進程對外服務,當收到請求時會傳送數據給客戶端。
3、查看workerman運行狀態:
php start.php status
wokerman 的幾大特性:
純PHP開發
workerman完全使用PHP開發,使用workerman開發的應用程序不依賴php-fpm、apache、nginx這些容器就可以獨立運行。 這使得PHP開發者開發、部署、調試應用程序非常方便。
支持PHP多進程
為了充分發揮服務器多CPU的性能,workerman默認支持多進程多任務。workerman開啟一個主進程和多個子進程對外提供服務, 主進程負責監控子進程退出信號,并負責生成新的子進程去處理服務,這樣做不僅提高了應用程序的性能,而且使得workerman更加穩定。
支持TCP、UDP
workerman支持TCP和UDP兩種傳輸層協議,只需要更改配置的一個字段,便可以更換傳輸層協議,業務代碼無需任何改動。
支持長連接
很多時候需要PHP應用程序要與客戶端保持長連接,比如聊天室、游戲等,但是傳統的PHP容器(apache、nginx、php-fpm)很難做到這一點。 使用workerman可以輕松使用PHP長連接。php單個進程可以支持幾千甚至幾萬的并發連接,多進程則可支持數十萬甚至上百萬的并發連接。
支持各種應用層協議
接口上支持各種應用層協議,包括自定義協議。Workerman默認支持的協議有HTTP、WebSocket、以及簡單的Text文本協議。 同時Workerman提供了通用的協議接口,開發者基于此接口便可以方便的開發出自己的協議。
支持高并發
workerman支持Libevent事件輪詢庫(需要安裝Libevent擴展), 使用Libevent在高并發時性能非常卓越,如果沒有安裝Libevent則使用PHP內置的Select相關系統調用。
關于“workerman的使用示例”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。