說明
框架只是實現了非常基礎的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 協議》,轉載必須註明作者和本文連結