說明
框架只是實現了非常基礎的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();
響應結果
libevent框架總結說明
前面所使用的內容大部分都涉及到,唯獨有一些訊號事件處理器,定時事件處理器並未使用,以及配置,日誌等,大家要吧看官方手冊擼就行了,具體要知道原理可以閱讀本人對libevent框架核心【c語言】的註解,本人不在過多的寫了。
本作品採用《CC 協議》,轉載必須註明作者和本文連結