Tufao1.2.1文档翻译:Tufao::HttpServerRequestRouter类参考,Tufao::HttpServerRequestRouter Class Reference
这个类,提供了一个稳健且高性能的 HTTP请求路由 。 详细说明……
类 |
|
struct |
|
这个类,描述的是一个请求处理器和一个过滤器。 详细说明…… |
|
这个类,提供了一个稳健且高性能的HTTP请求路由。
它允许注册一个请求处理器链。这个路由管理器,使用基于网址的路径部分和http 请求方法的映射规则来确定正确的处理器。
这个类中使用的那种映射规则,提供了一种可预测的行为,易于理解,并且允许使用缓存算法来提升性能。
当路由管理器找到一个匹配的请求处理器时, 就会调用它,并且传入请求及回应对象。如果 所找到的处理器无法处理该请求( 这是由返回值来表明的 ),则, 此路由管理器会继续寻找一个可用的处理器。如果路由管理 器没能成功完成寻找过程 ( 没找到合适的处理器,或者 所找到的处理器都无法处理该请求 ), 则 , 此路由管理器的 handleRequest方法 会返回假(false),并且连接 会保持开启状态。 这就意味着, 妳应当创建一个对于任意请求 都返回 404 的处理器, 将它注册为 最顶层的请求路由管理器中的最后一个处理器。
以下代码是一个示例:
#include <QCoreApplication>
#include <Tufao/HttpPluginServer>
#include <Tufao/HttpFileServer>
#include <Tufao/NotFoundHandler>
#include <Tufao/HttpServerRequestRouter>
#include <Tufao/HttpServer>
using namespace Tufao;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
HttpPluginServer plugins{ "routes.json" };
HttpServerRequestRouter router{
{QRegularExpression{""}, plugins},
{QRegularExpression{ "" }, HttpFileServer::handler ( "public" )},
{QRegularExpression{ "" }, NotFoundHandler::handler ()}
};
HttpServer server;
QObject::connect(&server, & HttpServer::requestReady ,
&router, & HttpServerRequestRouter::handleRequest );
server. listen (QHostAddress::Any, 8080);
return a.exec();
}
自此版本开始加入
0.3
typedef std::function<bool( HttpServerRequest &, HttpServerResponse &)> Tufao::HttpServerRequestRouter::Handler |
这是一个简单的类型定义,表示 HttpServerRequestRouter 接受 的处理器的类型。
自此版本开始引入
1.0
|
explicit |
构造 一个已经按照映射规则进行初始化的 HttpServerRequestRouter 对象。
自此版本开始引入
1.0
Your opinionsHxLauncher: Launch Android applications by voice commands