workerman

Yy4080私人影院 workerman是一個高性能的PHP socket 服務器框架,workerman基于PHP多進程以及libevent事件輪詢庫,PHP開發者只要實現一兩個接口,便可以開發出自己的網絡應用,例如Rpc服務、聊天室服務器、手機游戲服務器等。

workerman的目標是讓PHP開發者更容易的開發出基于socket的高性能的應用服務,而不用去了解PHP socket以及PHP多進程細節。 workerman本身是一個PHP多進程服務器框架,具有PHP進程管理以及socket通信的模塊,所以不依賴php-fpm、nginx或者apache等這些容器便可以獨立運行。

下載

下載workerman

  下載ZIP壓縮文件 下載125498次

特性

  • 支持HHVM
  • 使用PHP開發
  • 支持PHP多進程/多線程(多線程版本)
  • 標準輸入輸出重定向
  • 支持毫秒定時器
  • 支持基于事件的異步編程
  • 守護進程化
  • 支持TCP/UDP
  • 支持多端口監聽
  • 接口上支持各種應用層協議
  • 支持libevent事件輪詢庫,支持高并發
  • 支持服務平滑重啟
  • 支持PHP文件更新檢測及自動加載
  • 支持PHP長連接
  • 支持以指定用戶運行子進程
  • 支持telnet遠程控制
  • 高性能
查看更多 ?

環境

PHP>=5.3 非Win系統  詳細安裝教程點擊這里

Windows 用戶點擊這里

安裝

下載后解壓即可

服務端開發示例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

workerman啟動界面

3、查看workerman運行狀態類似如下界面:

php start.php status

workerman 查看運行狀態

性能

測試環境:

系統:ubuntu 12.04 LTS 64位
內存:8G
cpu:Intel? Core? i3-3220 CPU @ 3.30GHz × 4

<?php
use Workerman\Worker;
$worker = new Worker('tcp://0.0.0.0:1234');
$worker->count=3;
$worker->onMessage = function($connection$data)
{
    
// 長連接
    
$connection->send("HTTP/1.1 200 OK\r\nConnection: keep-alive\r\nServer: workerman\1.1.4\r\n\r\nhello");
    
// 短連接
    //$connection->close("HTTP/1.1 200 OK\r\nServer: workerman\1.1.4\r\n\r\nhello");
};
Worker::runAll();

業務邏輯

EchoServer

結果

短鏈接(每次請求完成后關閉鏈接,下次請求建立新的鏈接):
條件: 壓測腳本開500個線程,每個線程鏈接Workerman 10W次,每次鏈接發送1個請求
結果: 吞吐量:3W/S , cpu:60% , 內存占用:4*8M = 32M
長鏈接(每次請求后不關閉鏈接,下次請求繼續復用這個鏈接):
條件: 壓測腳本開1000個線程,每個線程鏈接Workerman 1次,每個鏈接發送10W請求
結果: 吞吐量:15.6W/S , cpu:68% , 內存占用:4*8M = 32M
無流量抖動,無內存泄漏,性能非常強悍

相關連接

版權所有 成都風禾網絡科技有限公司


Powered by web-msg-sender!




聯系我們
  • QQ群1:257046084 (2000人已滿)
    QQ群2:137410824 (2000人已滿)
    QQ群3:527941005 (2000人已滿)
    QQ群4:172789145 (2000人已滿)
    QQ群5:605328640 (2000人已滿)
    QQ群6:532976970 (2000人已滿)
    QQ群7:679148501 (2000人已滿)
    QQ群8:812483358 (2000人已滿)
    QQ群9:645569639 (2000人已滿)
    QQ群10:549059456 (2000人)
    游戲開發群:564297822(2000人)
    提示:一個人只能加一個群哦
    郵箱:walkor#workerman.net