RTTP Stub SDK
为了避免对现存的应用客户端进行改造,可通过集成 RTTP Stub SDK 来简化客户端接入。
RTTP Stub SDK 是一个轻量级的客户端集成库,它在客户端本地建立一个 TCP 代理。应用客户端只需将连接目标指向本地的代理端口,SDK 就会自动将数据通过 RTTP 协议转发给远端的 RTTP 服务器或 RTTP Proxy。
工作原理
RTTP Stub SDK 充当了应用客户端与 RTTP 网络之间的本地桥梁:
- SDK 在本地监听一个指定的 TCP 端口(例如
127.0.0.1:10080)。 - 应用客户端(如游戏客户端、App)连接到这个本地端口,而不是直接连接远程服务器。
- SDK 接收到 TCP 连接后,立即向远程 RTTP 节点 发起 RTTP 连接。
- SDK 在本地 TCP 连接与远程 RTTP 连接之间进行双向透传。
[应用客户端] <---- TCP (127.0.0.1) ----> [RTTP Stub SDK] <---- RTTP (UDP) ----> [集成RTTP的应用服务器]
[应用客户端] <---- TCP (127.0.0.1) ----> [RTTP Stub SDK] <---- RTTP (UDP) ----> [RTTP Proxy] <---- TCP ----> [应用服务器]
主要特性
- 零代码改造:应用客户端只需修改连接的 IP 和端口,无需修改核心网络通信逻辑。
- 跨平台支持:提供跨平台的SDK。
- 多链路映射:支持同时配置多个端口映射,满足复杂应用的需求。
- 状态监控:内置状态统计功能,可导出 JSON 格式的连接状态和详细日志。
- 弱网优化:通过底层的 RTTP 协议,显著提升在丢包、延迟波动环境下的传输稳定性。
API 说明
RTTP Stub 提供了简洁的 C 语言接口:
核心接口
| 函数 | 说明 |
|---|---|
rt_stub_init() | 初始化 SDK,启动底层 RTTP 引擎。 |
rt_stub_add_map(local_port, remote_host, remote_port) | 添加端口映射。将本地 TCP 端口映射到远程 RTTP 目标。 |
rt_stub_start() | 启动服务线程,开始处理网络事件。 |
rt_stub_stop() | 停止服务并关闭所有连接。 |
rt_stub_uninit() | 释放 SDK 资源。 |
辅助接口
| 函数 | 说明 |
|---|---|
rt_stub_get_state(buffer, size) | 获取当前所有连接的统计状态(JSON 格式)。 |
rt_stub_read_log(buffer, size) | 从循环缓冲区读取最新的运行日志。 |
使用示例 (C++)
#include "rttp_stub.h"
int main() {
// 1. 初始化
rt_stub_init();
// 2. 配置映射:将本地 10080 端口映射到远程服务器的 9000 端口
rt_stub_add_map(10080, "47.100.x.x", 9000);
// 3. 启动服务
rt_stub_start();
// 此时,应用客户端可以连接 127.0.0.1:10080 进行通信
// ... 运行中 ...
// 4. 停止并释放
rt_stub_stop();
rt_stub_uninit();
return 0;
}
集成
- 本地集成:RTTP Stub SDK 应直接集成到应用客户端进程中,或者作为本地伴生进程运行。