玩轉 PHP 網路程式設計全套之 libevent 框架之 httpServer

勺顛顛發表於2020-04-25

說明

框架只是實現了非常基礎的httpSever,對於請求主體【內容】需要程式設計師自行的去解析,所以要解析的話應該是非常簡單的,主要是form-data,x-www-form-urlencoded,raw,binary,GraphQL如果你要完整的相容瀏覽器端的請求以及其它工具如postman你可以繼續在此基礎上進行處理,當然了其它網路擴充套件如swoole非常完善,非常nice,拿來可以直接用了,解析都輪不到你動手,不過workerman網路框架作者是手動自己封裝的【可以看workerman的event擴充套件原始碼】。
httpServer是libevent框架封裝的基礎功能,其它玩意並沒有封裝。

hello,world httpServer

function _http_default($req, $data) {     echo "URI:", $req->getUri(), PHP_EOL;     //echo "Input headers:"; var_dump($req->getInputHeaders());     //echo "Output headers:"; var_dump($req->getOutputHeaders());     $buffer = new EventBuffer();     $buffer->add("hello,world");     $req->sendReply(200, "OK",$buffer);      $buf = $req->getInputBuffer();     echo "Body:\n";     while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {         echo $s, PHP_EOL;     }  }  $base = new EventBase(); $http = new EventHttp($base); $http->setAllowedMethods(EventHttpRequest::CMD_GET | EventHttpRequest::CMD_POST);  $http->setDefaultCallback("_http_default", "custom data value");  $http->bind("0.0.0.0", 2346); $base->loop();

響應結果

玩轉 PHP 網路程式設計全套之 libevent 框架之httpServer

libevent框架總結說明

前面所使用的內容大部分都涉及到,唯獨有一些訊號事件處理器,定時事件處理器並未使用,以及配置,日誌等,大家要吧看官方手冊擼就行了,具體要知道原理可以閱讀本人對libevent框架核心【c語言】的註解,本人不在過多的寫了。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

只會php crud的渣渣

相關文章