搜尋
首頁php框架Workermanworkerman介紹(附使用方法)

workerman介紹(附使用方法)

Nov 25, 2019 pm 05:22 PM
workerman

以下由workerman教學專欄來介紹workerman的概念及使用方法,希望對需要的朋友有幫助!

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 &#39;./Workerman/Autoloader.php&#39;;

// 创建一个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

workerman介紹(附使用方法)

#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知識請關注workerman教學專欄。

以上是workerman介紹(附使用方法)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:博客园。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境