Skip to content

公共 API 索引

查看 Markdown

包含 <arknet/arknet.hpp> 可使用已启用的传输能力,也可以只包含特定的公开头文件。 数据库客户端需要显式包含对应头文件。安全传输头文件和 MySQL 连接需要启用 ARKNET_ENABLE_SSL。

公开类型

类型族 客户端 服务端/Session 指南
TCP tcp_client、tcp_client_t<Derived> tcp_server、tcp_server_t<Session>、tcp_session_t<Derived> TCP
UDP udp_client udp_server、udp_session;独立的 udp_cast UDP
RUDP rudp_client、rudp_client_t<Derived> rudp_server、rudp_server_t<Session>、rudp_session_t<Derived> RUDP
ARQ 核心 arq::control_block、arq::options 不依赖 Asio,调用必须串行 ARQ 配置
单次 HTTP 请求 http_request、http_request_options 回调或 future 完成通知、取消与超时 请求
WebSocket ws_client ws_server、ws_session WebSocket
HTTP http_client http_server、http_session、http_router HTTP、路由
TLS TCP tcps_client tcps_server、tcps_session TLS
HTTPS https_client https_server、https_session HTTP
安全 WebSocket wss_client wss_server、wss_session TLS
MySQL mysql::connection、mysql::pool 连接池独占租约;显式包含 <arknet/mysql/connection.hpp> 或 <arknet/mysql/pool.hpp> MySQL
Redis redis::client、redis::pool;安全传输使用 redis::tls_client、redis::tls_pool 连接池独占租约;显式包含 <arknet/redis/client.hpp> 或 <arknet/redis/pool.hpp> Redis
调度 timer、io_pool、io_t iopool 是 io_pool 的别名 运行时、IO 模型

协议指南说明 CRTP 变体与公开头文件路径。UDP 的端点 Session 共享服务端 数据报 socket。HTTP 消息类型位于 arknet::http, WebSocket 协议类型位于 arknet::websocket。

常用操作

下列操作适用于传输端点。数据库客户端的请求、结果和关闭约定见 数据库指南。

分类 API 约定
启动 start(host, port, ...)、客户端 async_start(...) 检查返回值和 get_last_error();异步启动通过监听回调报告结果。
监听 bind_recv、bind_connect、bind_disconnect、bind_start、bind_stop 客户端/服务端与协议的签名不同,应在启动前绑定。
发送 async_send(data, callback)、future 重载、send 入队和写完成是不同结果,见所有权与线程。
停止 request_stop、wait_stopped、stop 网络对象保持存活至停止完成;IO 回调请求停止,所有者等待。
配额 set_max_send_buffer_size、get_queued_send_buffer_size 超限以 no_buffer_space 拒绝;默认配额为 16 MiB/1024 个操作。
HTTP 上限 set_http_header_limit、set_http_body_limit 默认头部 8192 字节、body 16 MiB;新配置从下一条消息的解析器生效。
调度 post、dispatch、start_timer、stop_timer 使用对象的 IO lane 执行,不能阻塞工作线程。
错误状态 arknet::get_last_error() 线程局部状态;在相关调用/回调线程检查,避免被后续操作覆盖。

扩展与源码参考

自定义客户端/Session 继承对应协议的 *_t<Derived>, 服务端模板接受 Session 类型。参见架构和永久 测试。 base/impl 与 detail 下的实现头文件不是稳定的公共 API。

Navigation

Type to search…

↑↓ navigate↵ selectEsc close