HTTP/HTTPS服务器类
更多...
#include <http_server.hpp>
|
|
byte_size | max_server_header_size |
| | 最大请求头大小
|
|
byte_size | max_server_body_size |
| | 最大请求体大小
|
|
bool | enable_websocket {true} |
| | 是否启用WebSocket
|
HTTP/HTTPS服务器类
提供完整的HTTP/HTTPS服务器功能,包括请求解析、路由分发、 会话管理、WebSocket升级等。
使用示例:
res.
body =
"<h1>Hello World</h1>";
});
res.
body = R
"({"users": [{"id": 1, "name": "John"}]})";
});
session->
send(
"Echo: " + msg);
});
});
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.hpp 第 68 行定义.
◆ http_server() [1/2]
| http_server::http_server |
( |
ports | port, |
|
|
size_t | worker_count = thread_pool::max_thread_threshhold() ) |
|
explicit |
◆ http_server() [2/2]
| http_server::http_server |
( |
ports | port, |
|
|
ssl_context | ctx, |
|
|
size_t | worker_count = thread_pool::max_thread_threshhold() ) |
构造HTTPS服务器
- 参数
-
| port | 监听端口 |
| ctx | SSL上下文(必须已加载证书) |
| worker_count | 工作线程数(默认最大) |
引用了 http_server() , 以及 port().
◆ cookie_name()
◆ get_session()
获取会话(从请求中)
- 参数
-
| request | HTTP请求 |
| create | 不存在时是否创建 |
- 返回
- 会话指针
◆ is_running()
| NEFORCE_NODISCARD bool http_server::is_running |
( |
| ) |
const |
|
inlinenoexcept |
◆ load_certificate()
| bool http_server::load_certificate |
( |
const string & | cert_file, |
|
|
const string & | key_file ) |
◆ port()
| NEFORCE_NODISCARD ports http_server::port |
( |
| ) |
const |
|
inlinenoexcept |
◆ router() [1/2]
| NEFORCE_NODISCARD const http_router & http_server::router |
( |
| ) |
const |
|
inlinenoexcept |
◆ router() [2/2]
| NEFORCE_NODISCARD http_router & http_server::router |
( |
| ) |
|
|
inlinenoexcept |
◆ server() [1/2]
◆ server() [2/2]
◆ set_cookie_name()
◆ set_max_sessions()
| void http_server::set_max_sessions |
( |
size_t | max | ) |
|
|
inlinenoexcept |
◆ set_session_cleanup_interval()
| void http_server::set_session_cleanup_interval |
( |
seconds | interval | ) |
|
|
inlinenoexcept |
◆ start()
| bool http_server::start |
( |
int | backlog = SOMAXCONN | ) |
|
|
inline |
◆ websocket() [1/2]
◆ websocket() [2/2]
该类的文档由以下文件生成: