NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
http_server类 参考

HTTP/HTTPS服务器类 更多...

#include <http_server.hpp>

Public 类型

using socket_type = tcp_socket
 Socket类型

Public 成员函数

 http_server (ports port, size_t worker_count=thread_pool::max_thread_threshhold())
 构造HTTP服务器
 http_server (ports port, ssl_context ctx, size_t worker_count=thread_pool::max_thread_threshhold())
 构造HTTPS服务器
bool load_certificate (const string &cert_file, const string &key_file)
 加载SSL证书
NEFORCE_NODISCARD http_routerrouter () noexcept
 获取路由器引用
NEFORCE_NODISCARD const http_routerrouter () const noexcept
 获取路由器常量引用
NEFORCE_NODISCARD websocket_serverwebsocket () noexcept
 获取WebSocket服务器引用
NEFORCE_NODISCARD const websocket_serverwebsocket () const noexcept
 获取WebSocket服务器常量引用
void set_cookie_name (http_cookie_name name) noexcept
 设置会话Cookie名称
NEFORCE_NODISCARD const http_cookie_namecookie_name () const noexcept
 获取会话Cookie名称
void set_session_cleanup_interval (seconds interval) noexcept
 设置会话清理间隔
void set_max_sessions (size_t max) noexcept
 设置最大会话数
NEFORCE_NODISCARD ports port () const noexcept
 获取监听端口
NEFORCE_NODISCARD bool is_running () const noexcept
 检查服务器是否运行中
NEFORCE_NODISCARD http_sessionget_session (http_request &request, bool create=false)
 获取会话(从请求中)
bool start (int backlog=SOMAXCONN)
 启动服务器
void stop () noexcept
 停止服务器
NEFORCE_NODISCARD tcp_server_baseserver () noexcept
 获取底层服务器指针
NEFORCE_NODISCARD const tcp_server_baseserver () const noexcept
 获取底层服务器常量指针

Public 属性

byte_size max_server_header_size
 最大请求头大小
byte_size max_server_body_size
 最大请求体大小
bool enable_websocket {true}
 是否启用WebSocket

详细描述

HTTP/HTTPS服务器类

提供完整的HTTP/HTTPS服务器功能,包括请求解析、路由分发、 会话管理、WebSocket升级等。

使用示例:

// HTTP服务器
// 设置路由
server.router().get("/", [](http_request& req, http_response& res) {
res.body = "<h1>Hello World</h1>";
});
server.router().get("/api/users", [](http_request& req, http_response& res) {
res.body = R"({"users": [{"id": 1, "name": "John"}]})";
});
// WebSocket路由
server.websocket().route("/ws", [](websocket_server::session_ptr session) {
session->set_message_handler([](const string& msg, websocket_opcode opcode) {
session->send("Echo: " + msg);
});
});
// 启动服务器
server.start();
http_server(ports port, size_t worker_count=thread_pool::max_thread_threshhold())
构造HTTP服务器
NEFORCE_NODISCARD tcp_server_base * server() noexcept
获取底层服务器指针
shared_ptr< websocket_session > session_ptr
会话智能指针类型
bool send(const string &data, websocket_opcode opcode=websocket_opcode::TEXT)
发送文本/二进制消息
void set_message_handler(message_handler handler)
设置消息处理器
http_server_response http_response
HTTP响应类型别名
http_server_request http_request
HTTP请求类型别名
websocket_opcode
WebSocket帧操作码
static const http_content & JSON_APP()
application/json
static const http_content & HTML_TEXT()
text/html
void set_content_type(http_content value)
设置Content-Type
网络端口封装类

在文件 http_server.hpp68 行定义.

构造及析构函数说明

◆ http_server() [1/2]

http_server::http_server ( ports port,
size_t worker_count = thread_pool::max_thread_threshhold() )
explicit

构造HTTP服务器

参数
port监听端口
worker_count工作线程数(默认最大)

引用了 port().

被这些函数引用 http_server().

◆ http_server() [2/2]

http_server::http_server ( ports port,
ssl_context ctx,
size_t worker_count = thread_pool::max_thread_threshhold() )

构造HTTPS服务器

参数
port监听端口
ctxSSL上下文(必须已加载证书)
worker_count工作线程数(默认最大)

引用了 http_server() , 以及 port().

成员函数说明

◆ cookie_name()

NEFORCE_NODISCARD const http_cookie_name & http_server::cookie_name ( ) const
inlinenoexcept

获取会话Cookie名称

返回
Cookie名称

在文件 http_server.hpp198 行定义.

◆ get_session()

NEFORCE_NODISCARD http_session * http_server::get_session ( http_request & request,
bool create = false )

获取会话(从请求中)

参数
requestHTTP请求
create不存在时是否创建
返回
会话指针

◆ is_running()

NEFORCE_NODISCARD bool http_server::is_running ( ) const
inlinenoexcept

检查服务器是否运行中

返回
运行中返回true

在文件 http_server.hpp222 行定义.

◆ load_certificate()

bool http_server::load_certificate ( const string & cert_file,
const string & key_file )

加载SSL证书

参数
cert_file证书文件路径
key_file私钥文件路径
返回
加载成功返回true

引用了 load_certificate().

被这些函数引用 load_certificate().

◆ port()

NEFORCE_NODISCARD ports http_server::port ( ) const
inlinenoexcept

获取监听端口

返回
端口号

在文件 http_server.hpp216 行定义.

引用了 ports::port.

被这些函数引用 http_server() , 以及 http_server().

◆ router() [1/2]

NEFORCE_NODISCARD const http_router & http_server::router ( ) const
inlinenoexcept

获取路由器常量引用

返回
路由器常量引用

在文件 http_server.hpp174 行定义.

◆ router() [2/2]

NEFORCE_NODISCARD http_router & http_server::router ( )
inlinenoexcept

获取路由器引用

返回
路由器引用

在文件 http_server.hpp168 行定义.

引用了 router().

被这些函数引用 router().

◆ server() [1/2]

NEFORCE_NODISCARD const tcp_server_base * http_server::server ( ) const
inlinenoexcept

获取底层服务器常量指针

返回
服务器常量指针

在文件 http_server.hpp254 行定义.

◆ server() [2/2]

NEFORCE_NODISCARD tcp_server_base * http_server::server ( )
inlinenoexcept

获取底层服务器指针

返回
服务器指针

在文件 http_server.hpp248 行定义.

◆ set_cookie_name()

void http_server::set_cookie_name ( http_cookie_name name)
inlinenoexcept

设置会话Cookie名称

参数
nameCookie名称

在文件 http_server.hpp192 行定义.

引用了 move() , 以及 name().

◆ set_max_sessions()

void http_server::set_max_sessions ( size_t max)
inlinenoexcept

设置最大会话数

参数
max最大数量

在文件 http_server.hpp210 行定义.

引用了 max().

◆ set_session_cleanup_interval()

void http_server::set_session_cleanup_interval ( seconds interval)
inlinenoexcept

设置会话清理间隔

参数
interval间隔时间

在文件 http_server.hpp204 行定义.

◆ start()

bool http_server::start ( int backlog = SOMAXCONN)
inline

启动服务器

参数
backlog连接队列大小
返回
启动成功返回true

在文件 http_server.hpp237 行定义.

◆ websocket() [1/2]

NEFORCE_NODISCARD const websocket_server & http_server::websocket ( ) const
inlinenoexcept

获取WebSocket服务器常量引用

返回
WebSocket服务器常量引用

在文件 http_server.hpp186 行定义.

◆ websocket() [2/2]

NEFORCE_NODISCARD websocket_server & http_server::websocket ( )
inlinenoexcept

获取WebSocket服务器引用

返回
WebSocket服务器引用

在文件 http_server.hpp180 行定义.


该类的文档由以下文件生成: