StupidBeauty
Read times:1054Posted at: - no title specified

Tufao1.2.1文档翻译:Tufao::HttpServerRequestRouter类参考,Tufao::HttpServerRequestRouter Class Reference

这个类,提供了一个稳健且高性能的 HTTP请求路由 详细说明……

struct  

Mapping

这个类,描述的是一个请求处理器和一个过滤器。 详细说明……

详细说明

这个类,提供了一个稳健且高性能的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)文档

typedef std::function<bool( HttpServerRequest &,  HttpServerResponse &)>  Tufao::HttpServerRequestRouter::Handler

这是一个简单的类型定义,表示 HttpServerRequestRouter 接受 的处理器的类型。

自此版本开始引入

1.0

构造函数及析构函数文档

Tufao::HttpServerRequestRouter::HttpServerRequestRouter

(

std::initializer_list<  Mapping  > 

mappings ,

QObject * 

parent  =  0

)

explicit

构造 一个已经按照映射规则进行初始化的 HttpServerRequestRouter 对象。

自此版本开始引入

1.0

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands