跳到主要内容

RTTP Stub SDK

为了避免对现存的应用客户端进行改造,可通过集成 RTTP Stub SDK 来简化客户端接入。

RTTP Stub SDK 是一个轻量级的客户端集成库,它在客户端本地建立一个 TCP 代理。应用客户端只需将连接目标指向本地的代理端口,SDK 就会自动将数据通过 RTTP 协议转发给远端的 RTTP 服务器或 RTTP Proxy。

工作原理

RTTP Stub SDK 充当了应用客户端与 RTTP 网络之间的本地桥梁:

  1. SDK 在本地监听一个指定的 TCP 端口(例如 127.0.0.1:10080)。
  2. 应用客户端(如游戏客户端、App)连接到这个本地端口,而不是直接连接远程服务器。
  3. SDK 接收到 TCP 连接后,立即向远程 RTTP 节点 发起 RTTP 连接。
  4. 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 应直接集成到应用客户端进程中,或者作为本地伴生进程运行。