WarriorMan是一款php的協(xié)程高性能socket擴(kuò)展,適合對(duì) Workerman 有一定的了解的同學(xué)使用。
WarriorMan是一個(gè)完全用c語言編寫的php擴(kuò)展,按照 Workerman 的 手冊(cè) 制作,解決Workerman的一些短板,為Workerman插上協(xié)程的翅膀。
作者在這里希望大家可以嘗試使用WarriorMan,嘗試學(xué)習(xí)WarriorMan源碼,源碼中有大量中文注釋,這對(duì)提升自己編程水平以及更好的理解Workerman和Swoole很有幫助。
如果在使用/學(xué)習(xí)中遇到任何問題,可以提issues或者在QQ群: 1098698769 中直接聯(lián)系作者
1 WarriorMan沒有WorkerMan穩(wěn)定,目前適合學(xué)習(xí)與嘗試。
2 WarriorMan如果框架本身出現(xiàn)BUG,對(duì)于不懂PHP擴(kuò)展調(diào)試的開發(fā)者,那么只能等待WarriorMan開發(fā)者們修復(fù)。
1 Workerman是純php實(shí)現(xiàn)的網(wǎng)絡(luò)框架,WarriorMan是純c實(shí)現(xiàn)的php擴(kuò)展
2 Workerman的事件是基于異步回調(diào)的編碼方式實(shí)現(xiàn)的,WarriorMan是協(xié)程同步的編碼方式實(shí)現(xiàn)
3 Workerman的mysql客戶端,redis客戶端如果要實(shí)現(xiàn)非阻塞,依賴于基于異步回調(diào)的第三方庫。而WarriorMan因?yàn)镠OOK了PHP TCP Socket 類型的 stream,所以常見的Redis
、PDO
、Mysqli
以及用 PHP 的streams系列函數(shù)操作 TCP 連接的操作,都默認(rèn)支持協(xié)程調(diào)度,減少了編程復(fù)雜度。
PHP7 or Higher
1 首先修改make.sh,將里面路徑修改為自己php的路徑
2 執(zhí)行./make.sh
3 最后別忘了將workerman.so添加到php.ini
use Workerman\Worker;
Warriorman\Worker::rename(); // 為了防止命名空間沖突
Warriorman\Runtime::enableCoroutine(); // hook相關(guān)函數(shù)
$worker = new Worker("tcp://0.0.0.0:8080");
$worker->onMessage = function ($connection, $data) {
$responseStr = "hello world";
$connection->send($responseStr);
};
Worker::runAll();
WarriorMan:https://www.kancloud.cn/wwwoooshizha/warriorman/content
WorkerMan:http://doc.workerman.net
WarriorMan 交流QQ群: 1098698769
效率怎么樣,有沒有實(shí)際項(xiàng)目運(yùn)行過?不然沒人敢隨便拿去真實(shí)項(xiàng)目用的呀,萬一踩坑都不知道怎么辦......
你要拿出測(cè)試結(jié)果,這玩意優(yōu)點(diǎn)在哪才行,不然迷迷糊糊的。
比如,你可以在同配置機(jī)器上測(cè)試 QPS,數(shù)據(jù)庫等。。。
支持平滑重啟