根据消息语义和对端要求选择传输方式,根据服务协议选择原生客户端。 传输端点采用一致的生命周期、发送所有权与 IO 调度约定; 服务客户端另行说明请求与回复契约。
| 模块 | 服务端 | 客户端 | 配置 | 性能 |
|---|---|---|---|---|
| TCP | 创建 | 创建 | 拆包与 Session | 结果 |
| UDP | 创建 | 创建 | Cast 与数据报边界 | 结果 |
| RUDP | 创建 | 创建 | ARQ 与限额 | 结果 |
| WebSocket / WSS | 创建 | 创建 | Upgrade 与消息 | 结果 |
| HTTP / HTTPS | 创建 | 创建 | 消息与 Keep-Alive | 结果 |
| TLS / mTLS | 创建 | 创建 | 证书与双向认证 | 结果 |
| MySQL | 外部 MySQL 服务 | 查询与连接池 | TLS、限额与租约 | 性能测试 |
| Redis | 外部 Redis 服务 | 客户端与连接池 | 限额、认证与租约 | 性能测试 |
支持状态
- 默认依赖 Boost.Asio。Standalone Asio 通过相同的回调 API 支持 TCP、UDP、RUDP、 TLS 和数据库客户端;HTTP 与 WebSocket 需要 Boost.Beast。
- MySQL 认证与安全传输需要启用
ARKNET_ENABLE_SSL并提供 OpenSSL。 - IPv4 和 IPv6 共用端点 API,监听策略需要显式配置。
- HTTP 当前实现 HTTP/1.1。原生 UDP 不增加重传或自动切包。
- RUDP 提供仅 ARQ、固定 FEC 与自适应 FEC,包含在
v0.1.0中;部署采用需完成生产验收。 - 单次 HTTP 请求支持完成通知、超时与取消。
- 公共协程端点、HTTP/2、HTTP/3、named pipe、Unix domain socket、RPC、 DTLS 和 WebSocket 压缩列在路线图中。
- 数据库客户端指南介绍原生单节点 MySQL 与 Redis 客户端、 连接池独占租约与失败处理。