Flutter SDK

flutter sdk


# Flutter API说明

[TOC]

tk_initSdk

  • 功能:IOTC初始化,确认sdkLicensekey的合法性
  • Key值需要向TUTK申请
/**
IOTC 初始化

    /// 初始化SDK, 更改 realm 设定
    /// 需要在 IOTC_Initialize2() 之前调用
    /// 如果 master realm 设定成功,则回调 TUTK_ER_NoERROR
    /// * \如果返回值 < 0,则上报错误码
    /// *  - #如果region无效,则回调 TUTK_ER_INVALID_ARG
    /// *  - #如果key无效,则回调 TUTK_ER_INVALID_LICENSE_KEY
    /// *  - #如果内存分配失败,则回调 TUTK_ER_MEM_INSUFFICIENT
    /// * [licenseKey] 需要设置的TUTK Server's realm.
*/
static Future<int> tk_initSdk(String licenseKey) 

示例:
FlutterTunnel.tk_initSdk('licensekey');

tk_connectTunnel

  • 功能:建立Tunnel连接
/**
Tunnel 连接

    /// 此接口用于客户端与Tunnel Agent建立连接
    /// * [connectInfo]
    /// var connectInfo = {"uid": _uid, "username": _username, "password": _password};
    /// * [_uid]   Tunnel服务端 所需使用的UID
    /// * [_username]   预设的account
    /// * [_password]   预设的password
    ///  当返回值 >= 0 且等于输入的SID参数时,则返回相应的session id
    ///  如果返回值 < 0,则上报错误码

*/
static Future<int>tk_connectTunnel(Map connectInfo)
- (int)tk_connectTunnel

示例:
var info = {"uid": _uid, "username": "admin", "password": "testpwd"};
int sid = await FlutterTunnel.tk_connectTunnel(info); 

tk_startPortMapping

  • 功能:开始将两端端口进行映射
/**
端口映射

    /// 进行端口映射
    /// 此接口用于Tunnel Agent启用端口映射服务
    //  *    由P2PTunnel 模块提供,Tunnel Agent将指定本地端口
    //  *    Tunnel Agent将使用一个本地的端口local port映射远程的端口remote port
    /// * [portInfo]
    /// var portInfo = {"uid": _uid, "localPort": _localPort, "remotePort": _remotePort};
    /// * [_uid]   Tunnel服务端 所需使用的UID
    /// * [_localPort]  与Tunnel服务端 建立连接时使用的本地端口
    /// * [_remotePort]   Tunnel服务端 建立连接时指定的远端端口
    /// 如果返回值 >= 0,则返回端口映射索引
    /// 如果返回值 < 0,则上报错误码
*/
static Future<int>tk_startPortMapping(Map portInfo)
tk_startPortMapping

示例:
int webIndex;
var info = {"uid": _uid, "localPort": 10000, "remotePort": 80};
try {
  webIndex = await FlutterTunnel.tk_startPortMapping(info);
}
on Exception {
  webIndex = -1;
}

tk_stopPortMapping

  • 功能:停止端口映射
/**
停止端口映射

    /// 停止端口映射
    /// 此API用于Tunnel Agent关闭端口映射服务
    //  *    与P2PTunnelAgent_PortMapping() 提供的端口映射索引 保持一致
    /// * [portInfo]
    /// var portInfo = {"uid": _uid};
    /// * [_uid]  Tunnel服务端 所需使用的UID
*/
static Future<void>tk_stopPortMapping(Map portInfo)

示例:
var info = {"uid": _uid};
FlutterTunnel.tk_stopPortMapping(info);

tk_disconnectTunnel

  • 功能:断开Tunnel连接
/**
断开Tunnel连接

    /// 停止Tunnel连接的进程
    /// 此接口用于客户端停止与服务端建立连接
    //  *    当客户端在 P2PTunnelAgent_Connect_Ex() 中阻塞时,可使用此API。
    /// * [connectInfo]
    /// var connectInfo = {"uid": _uid};
    /// * [_uid]  Tunnel服务端 所需使用的UID
*/
static Future<void>tk_disconnectTunnel(Map connectInfo)

示例:
var info = {"uid": _uid};
FlutterTunnel.tk_disconnectTunnel(info);

tk_unInitSdk

  • 功能:IOTC反初始化
/**
IOTC 反初始化

    /// 反初始化 P2PTunnel 模块
    /// 此API用于将Tunnel Agent的P2PTunnel模块进行反初始化
    ///  * \如果反初始化成功,则回调 TUNNEL_ER_NoERROR
    ///  * \如果返回值 < 0,则上报错误码
*/
static Future<void> tk_unInitSdk()

示例:
FlutterTunnel.tk_unInitSdk();

tk_setTunnelStatusCB

  • 功能:上抛Tunnel连接状态
/**
上抛Tunnel连接状态

    /// 上抛Tunnel连接状态
    /// 此接口用于设置P2PTunnel的回调
    //  *    Tunnel Agent可从回调中获知当前的连接状态
    //  *    每当tunnel连接状态发生改变时,P2PTunnel模块将被调用
    //  *    此回调函数用于通知Tunnel Agent相应的状态
    /// * [_uid]  Tunnel服务端 所需使用的UID
*/
static Future<void> tk_setTunnelStatusCB(String _uid, void Function(dynamic) callback) 

示例:
FlutterTunnel.tk_setTunnelStatusCB(_uid, (data) {
  String uid = data["uid"];
  int sid = data["sid"];
  int error = data["error"];
  setState(() {
    _tunnelStatusCB = error;
    if(_tunnelStatusCB < 0) {
      disconnectTunnel();
    }
  });
});

页面列表

ITEM_HTML