目录

关闭会话(C++)

当一个远场通信请求完成,即数据已经成功发送并收到确认,或者在某些情况下,由于超时或其他错误原因,通信尝试失败,此时应立即调用相应的“关闭会话”或“释放资源”方法。这一操作的主要目的是:

在请求结束后,及时关闭会话并释放相关资源是保持系统健康和高效运行的关键步骤。这不仅有助于优化资源利用,还能提高系统的稳定性和可靠性。

约束与限制

关闭会话能力支持Phone、2in1、Tablet、Wearable设备。并且从5.1.1(19)开始,新增支持TV设备。

接口说明

具体API说明详见接口文档。

接口名 描述
uint32_t HMS_Rcp_CloseSession(Rcp_Session **session); 关闭会话。

使用示例

  1. CPP侧导入模块。

    #include "RemoteCommunicationKit/rcp.h"
    #include <cstdlib>
    #include <cstring>
    #include <cstdio>
    #include <thread>
  2. CMakeLists.txt中添加以下lib。(具体请见C API开发准备)。

    librcp_c.so
  3. 创建会话,会话发起请求后关闭会话。“https://www.example.com”请根据实际情况替换为想要请求的URL地址。等待响应返回后,销毁request并关闭session。

    const char *kHttpServerAddress = "http://www.example.com";
    Rcp_Request *request = HMS_Rcp_CreateRequest(kHttpServerAddress);
    request->method = RCP_METHOD_GET;
    uint32_t errCode = 0;
    // 创建session
    Rcp_Session *session = HMS_Rcp_CreateSession(NULL, &errCode);
    // 配置请求回调
    Rcp_ResponseCallbackObject responseCallback = {ResponseCallback, NULL};
    // 发起fetch请求
    errCode = HMS_Rcp_Fetch(session, request, &responseCallback);
    // 在退出前取消可能还在执行的requests
    errCode = HMS_Rcp_CancelSession(session);
    // 关闭session
    errCode = HMS_Rcp_CloseSession(&session);
    napi_value value = nullptr;
    napi_create_int32(env, errCode, &value);
    napi_resolve_deferred(env, ctx->deferred, value);
    // 清理request
    HMS_Rcp_DestroyRequest(request);