新版信令客户端 API 参考

更新时间: 2024/07/23 16:52:57

NetEase IM SDK(以下简称 NIM SDK)提供信令服务,支持呼叫邀请、频道管理、用户管理、离线消息同步、多端同步和自定义控制信令。

本文介绍信令服务相关 API。

支持平台

Android iOS Windows/macOS Web/uni-app/小程序 HarmonyOS

API 概览

信令监听

Android/iOS/Windows/macOS
API 描述 起始版本
addSignallingListener 注册信令相关监听器 V10.3.1(对应 iOS V10.3.2)
removeSignallingListener 移除信令相关监听器 V10.3.1(对应 iOS V10.3.2)
Web/uni-app/小程序/Harmony
API 描述 起始版本
on("EventName") 注册信令相关监听器 V10.3.1(对应 Harmony V1.0.0)
off("EventName") 移除信令相关监听器 V10.3.1(对应 Harmony V1.0.0)

信令操作

API 描述 起始版本
call 直接呼叫对方加入房间 V10.3.1(对应 iOS V10.3.2/Harmony V1.0.0)
callSetup 呼叫建立,包括加入信令频道房间,同时接受对方呼叫 V10.3.1(对应 iOS V10.3.2/Harmony V1.0.0)
createRoom 创建信令频道房间 V10.3.1(对应 iOS V10.3.2/Harmony V1.0.0)
closeRoom 关闭信令频道房间 V10.3.1(对应 iOS V10.3.2/Harmony V1.0.0)
joinRoom 加入信令频道房间 V10.3.1(对应 iOS V10.3.2/Harmony V1.0.0)
leaveRoom 离开信令频道房间 V10.3.1(对应 iOS V10.3.2/Harmony V1.0.0)
invite 邀请成员加入信令频道房间 V10.3.1(对应 iOS V10.3.2/Harmony V1.0.0)
cancelInvite 取消邀请 V10.3.1(对应 iOS V10.3.2/Harmony V1.0.0)
rejectInvite 拒绝邀请 V10.3.1(对应 iOS V10.3.2/Harmony V1.0.0)
acceptInvite 接受邀请 V10.3.1(对应 iOS V10.3.2/Harmony V1.0.0)
sendControl 发送自定义控制信令 V10.3.1(对应 iOS V10.3.2/Harmony V1.0.0)
getRoomInfoByChannelName 根据频道名称查询频道房间信息 V10.3.1(对应 iOS V10.3.2/Harmony V1.0.0)

接口类

V2NIMSignallingService 类提供信令服务相关接口。

addSignallingListener

接口描述

注册信令监听器。

注册成功后,当事件发生时,SDK 会返回对应的回调。

  • 建议在初始化后调用该方法。

  • 全局只需注册一次。

参数说明

Android
Javavoid addSignallingListener(V2NIMSignallingListener listener);
参数名称 类型 是否必填 默认值 说明
listener V2NIMSignallingListener - 信令相关监听器
iOS
Objective-C- (void)addSignallingListener:(id<V2NIMSignallingListener>)listener;
参数名称 类型 是否必填 默认值 说明
listener V2NIMConversationListener - 信令相关监听器
Windows/macOS
cppvirtual void addSignallingListener(const V2NIMSignallingListener& listener) = 0;
参数名称 类型 是否必填 默认值 说明
listener V2NIMSignallingListener - 信令相关监听器

示例代码

Android
JavaNIMClient.getService(V2NIMSignallingService.class).addSignallingListener(listener);
iOS
Objective-C@interface Clazz:NSObject<V2NIMSignallingListener>
- (void)addSignallingListener;
- (void)removeSignallingListener;
@end

@implementation Clazz
- (void)addSignallingListener
{
    [[NIMSDK sharedSDK].v2SignallingService addSignallingListener:self];
}

- (void)removeSignallingListener
{
    [[NIMSDK sharedSDK].v2SignallingService removeSignallingListener:self];
}

- (void)onMultiClientEvent:(nonnull V2NIMSignallingEvent *)event {
    // Your Code
}

- (void)onOfflineEvent:(nonnull NSArray<V2NIMSignallingEvent *> *)event { 
    // Your Code
}

- (void)onOnlineEvent:(nonnull V2NIMSignallingEvent *)event { 
    // Your Code
}

- (void)onSyncRoomInfoList:(nonnull NSArray<V2NIMSignallingRoomInfo *> *)channelRooms { 
    // Your Code
}

@end
Windows/macOS
cppsignallingService.addSignallingListener(listener);

返回值

removeSignallingListener

接口描述

移除信令监听器。

参数说明

Android
Javavoid removeSignallingListener(V2NIMSignallingListener listener);
参数名称 类型 是否必填 默认值 说明
listener V2NIMSignallingListener - 信令相关监听器
iOS
Objective-C- (void)removeSignallingListener:(id<V2NIMSignallingListener>)listener;
参数名称 类型 是否必填 默认值 说明
listener V2NIMSignallingListener - 信令相关监听器
Windows/macOS
cppvirtual void removeSignallingListener(const V2NIMSignallingListener& listener) = 0;
参数名称 类型 是否必填 默认值 说明
listener V2NIMSignallingListener - 信令相关监听器

示例代码

Android
JavaNIMClient.getService(V2NIMSignallingService.class).removeSignallingListener(listener);
iOS
Objective-C@interface Clazz:NSObject<V2NIMSignallingListener>
- (void)addSignallingListener;
- (void)removeSignallingListener;
@end

@implementation Clazz
- (void)addSignallingListener
{
    [[NIMSDK sharedSDK].v2SignallingService addSignallingListener:self];
}

- (void)removeSignallingListener
{
    [[NIMSDK sharedSDK].v2SignallingService removeSignallingListener:self];
}

- (void)onMultiClientEvent:(nonnull V2NIMSignallingEvent *)event {
    // Your Code
}

- (void)onOfflineEvent:(nonnull NSArray<V2NIMSignallingEvent *> *)event { 
    // Your Code
}

- (void)onOnlineEvent:(nonnull V2NIMSignallingEvent *)event { 
    // Your Code
}

- (void)onSyncRoomInfoList:(nonnull NSArray<V2NIMSignallingRoomInfo *> *)channelRooms { 
    // Your Code
}

@end
Windows/macOS
cppsignallingService.removeSignallingListener(listener);

返回值

on("EventName")

接口描述

注册信令服务相关监听。

注册成功后,当事件发生时,SDK 会触发相关回调通知。

  • 建议在初始化后调用该方法。

  • 全局只需注册一次。

  • 该方法为同步。

参数说明

Web/uni-app/小程序
typescriptinterface V2NIMSignallingService extends EventEmitter3<V2NIMSignallingListener>
参数名称 类型 是否必填 默认值 描述
eventName String - 事件名称:
  • onOnlineEvent:在线状态事件回调,返回在线事件对象,包括关闭房间、加入房间、离开房间、邀请加入房间、取消邀请加入房间、拒绝加入邀请、接受加入邀请、控制事件。当本地端或多端同步在线事件成功时会触发该回调。
  • onOfflineEvent:离线状态事件回调,返回离线事件对象,包括关闭房间、加入房间、离开房间、邀请加入房间、取消邀请加入房间、拒绝加入邀请、接受加入邀请。当本地端或多端同步离线事件成功时会触发该回调。
  • onMultiClientEvent:多端事件操作回调,返回多端操作的事件对象,包括拒绝加入邀请、接受加入邀请。当多端操作事件成功时会触发该回调。
  • onSyncRoomInfoList:登录后同步信令频道房间列表回调。返回当前未退出的信令频道房间列表。
  • fn function - 处理事件的方法,当事件触发时,会调用此 handler 进行处理。
    HarmonyOS
    typescriptexport interface NIMEBaseServiceInterface<I extends NIMEBaseListener> {
      /**
       * 继承自 eventEmitter3 的监听事件方法
       */
      on<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
      /**
       * 继承自 eventEmitter3 的监听事件方法
       */
      once<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
    }
    
    参数名称 类型 是否必填 默认值 描述
    eventName String - 事件名称:
  • onOnlineEvent:在线状态事件回调,返回在线事件对象,包括关闭房间、加入房间、离开房间、邀请加入房间、取消邀请加入房间、拒绝加入邀请、接受加入邀请、控制事件。当本地端或多端同步在线事件成功时会触发该回调。
  • onOfflineEvent:离线状态事件回调,返回离线事件对象,包括关闭房间、加入房间、离开房间、邀请加入房间、取消邀请加入房间、拒绝加入邀请、接受加入邀请。当本地端或多端同步离线事件成功时会触发该回调。
  • onMultiClientEvent:多端事件操作回调,返回多端操作的事件对象,包括拒绝加入邀请、接受加入邀请。当多端操作事件成功时会触发该回调。
  • onSyncRoomInfoList:登录后同步信令频道房间列表回调。返回当前未退出的信令频道房间列表。
  • fn function - 处理事件的方法,当事件触发时,会调用此 handler 进行处理。

    示例代码

    Web/uni-app/小程序
    typescriptnim.V2NIMSignallingService.on("onOnlineEvent", function (event: V2NIMSignallingEvent) {})
    nim.V2NIMSignallingService.on("onOfflineEvent", function (event: V2NIMSignallingEvent[]]) {})
    nim.V2NIMSignallingService.on("onMultiClientEvent", function (event: V2NIMSignallingEvent) {})
    nim.V2NIMSignallingService.on("onSyncRoomInfoList", function (roomInfoList: V2NIMSignallingRoomInfo[]) {})
    
    HarmonyOS
    typescriptsignallingService.on("onOnlineEvent", function (event: V2NIMSignallingEvent) {})
    signallingService.on("onOfflineEvent", function (event: V2NIMSignallingEvent[]]) {})
    signallingService.on("onMultiClientEvent", function (event: V2NIMSignallingEvent) {})
    signallingService.on("onSyncRoomInfoList", function (roomInfoList: V2NIMSignallingRoomInfo[]) {})
    

    返回值

    off("EventName")

    接口描述

    取消注册信令服务相关监听。

    该方法为同步。

    参数说明

    Web/uni-app/小程序
    typescriptinterface V2NIMSignallingService extends EventEmitter3<V2NIMSignallingListener>
    
    参数名称 类型 是否必填 默认值 描述
    eventName String - 事件名称:
  • onOnlineEvent:在线状态事件回调,返回在线事件对象,包括关闭房间、加入房间、离开房间、邀请加入房间、取消邀请加入房间、拒绝加入邀请、接受加入邀请、控制事件。当本地端或多端同步在线事件成功时会触发该回调。
  • onOfflineEvent:离线状态事件回调,返回离线事件对象,包括关闭房间、加入房间、离开房间、邀请加入房间、取消邀请加入房间、拒绝加入邀请、接受加入邀请、控制事件。当本地端或多端同步离线事件成功时会触发该回调。
  • onMultiClientEvent:多端事件操作回调,返回多端操作的事件对象,包括拒绝加入邀请、接受加入邀请。当多端操作事件成功时会触发该回调。
  • onSyncRoomInfoList:登录后同步信令频道房间列表回调。返回当前未退出的信令频道房间列表。
  • fn function - 处理事件的方法,当事件触发时,会调用此 handler 进行处理。
    HarmonyOS
    typescriptexport interface NIMEBaseServiceInterface<I extends NIMEBaseListener> {
      /**
       * 继承自 eventEmitter3 的取消监听方法
       */
      off<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
      /**
       * 继承自 eventEmitter3 的移除事件方法
       */
      removeAllListeners<T extends keyof I>(eventName?: T): void
    }
    
    参数名称 类型 是否必填 默认值 描述
    eventName String - 事件名称:
  • onOnlineEvent:在线状态事件回调,返回在线事件对象,包括关闭房间、加入房间、离开房间、邀请加入房间、取消邀请加入房间、拒绝加入邀请、接受加入邀请、控制事件。当本地端或多端同步在线事件成功时会触发该回调。
  • onOfflineEvent:离线状态事件回调,返回离线事件对象,包括关闭房间、加入房间、离开房间、邀请加入房间、取消邀请加入房间、拒绝加入邀请、接受加入邀请、控制事件。当本地端或多端同步离线事件成功时会触发该回调。
  • onMultiClientEvent:多端事件操作回调,返回多端操作的事件对象,包括拒绝加入邀请、接受加入邀请。当多端操作事件成功时会触发该回调。
  • onSyncRoomInfoList:登录后同步信令频道房间列表回调。返回当前未退出的信令频道房间列表。
  • fn function - 处理事件的方法,当事件触发时,会调用此 handler 进行处理。

    示例代码

    Web/uni-app/小程序
    typescriptnim.V2NIMSignallingService.off("onOnlineEvent")
    nim.V2NIMSignallingService.off("onOfflineEvent")
    nim.V2NIMSignallingService.off("onMultiClientEvent")
    nim.V2NIMSignallingService.off("onSyncRoomInfoList")
    
    HarmonyOS
    typescriptsignallingService.off("onOnlineEvent", function (event: V2NIMSignallingEvent) {})
    signallingService.off("onOfflineEvent", function (event: V2NIMSignallingEvent[]]) {})
    signallingService.off("onMultiClientEvent", function (event: V2NIMSignallingEvent) {})
    signallingService.off("onSyncRoomInfoList", function (roomInfoList: V2NIMSignallingRoomInfo[]) {})
    

    返回值

    call

    接口描述

    直接呼叫对方加入信令频道房间。

    建立呼叫的正常流程如下:

    
      flowchart LR
        classDef default fill:#337EFF,stroke:#337EFF,stroke-width:0px,color:#FFFFFF;
        
        A("创建信令频道房间(createRoom)") --> B("自己加入房间(joinRoom)") --> C("邀请对方加入房间(invite)")
        click A "#createRoom"
        click B "#joinRoom"
        click C "#invite"
    

    为了加速呼叫流程,云信信令通过将几个接口进行组合封装。本接口即组合上述三个接口,直接呼叫对方加入信令频道房间。如果您需要精确控制每一步,请通过调用单个接口实现。

    参数说明

    Android
    javavoid call(V2NIMSignallingCallParams params, V2NIMSuccessCallback<V2NIMSignallingCallResult> success, V2NIMFailureCallback failure);
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingCallParams - 呼叫配置参数。
    success V2NIMSuccessCallback<V2NIMSignallingCallResult> - 呼叫成功回调。
    failure V2NIMFailureCallback - 呼叫失败回调,返回 错误码
    iOS
    objective-c- (void)call:(V2NIMSignallingCallParams*)param
         success:(V2NIMSignallingCallSuccess)success
         failure:(V2NIMFailureCallback)failure;
    
    参数名称 类型 是否必填 默认值 描述
    param V2NIMSignallingCallParams - 呼叫配置参数。
    success V2NIMSignallingCallSuccess - 呼叫成功回调,可自定义设置。
    failure V2NIMFailureCallback - 呼叫失败回调,返回 错误码
    Windows/macOS
    cppvirtual void v2::V2NIMSignallingService::call	(	const V2NIMSignallingCallParams & 	params,
                                                    const V2NIMSuccessCallback< const V2NIMSignallingCallResult & > & 	success,
                                                    const V2NIMFailureCallback & 	failure)	
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingCallParams - 呼叫配置参数。
    success V2NIMSuccessCallback<const V2NIMSignallingCallResult &> - 呼叫成功回调。
    failure V2NIMFailureCallback - 呼叫失败回调,返回 错误码
    Web/uni-app/小程序
    typescriptcall(params: V2NIMSignallingCallParams): Promise<V2NIMSignallingCallResult>
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingCallParams - 呼叫配置参数。
    HarmonyOS
    typescriptcall(params: V2NIMSignallingCallParams): Promise<V2NIMSignallingCallResult>
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingCallParams - 呼叫配置参数。

    示例代码

    Android
    java//被呼叫者账号ID不能填自己的账号ID
    String calleeAccountId = "test";
    //请求ID
    String requestId = "123456";
    //频道类型
    V2NIMSignallingChannelType channelType = V2NIMSignallingChannelType.V2NIM_SIGNALLING_CHANNEL_TYPE_VIDEO;
    //推送配置
    V2NIMSignallingPushConfig v2NIMSignallingPushConfig = new V2NIMSignallingPushConfig();
    //信令配置
    V2NIMSignallingConfig v2NIMSignallingConfig = new V2NIMSignallingConfig();
    //音视频配置
    V2NIMSignallingRtcConfig v2NIMSignallingRtcConfig = new V2NIMSignallingRtcConfig("rtcChannelName",60 * 60L,null);
    
    V2NIMSignallingCallParams params = new V2NIMSignallingCallParams.Builder(calleeAccountId, requestId, channelType)
        .channelExtension("channelExtension")
        .channelName("channelName")
        .serverExtension("serverExtension")
        .pushConfig(v2NIMSignallingPushConfig)
        .signallingConfig(v2NIMSignallingConfig)
        .rtcConfig(v2NIMSignallingRtcConfig)
        .build();
    NIMClient.getService(V2NIMSignallingService.class).call(params, new V2NIMSuccessCallback<V2NIMSignallingCallResult>() {
        @Override
        public void onSuccess(V2NIMSignallingCallResult v2NIMSignallingCallResult) {
            //call success
        }
    }, new V2NIMFailureCallback() {
        @Override
        public void onFailure(V2NIMError error) {
            //call failure
        }
    });
    
    iOS
    objective-cV2NIMSignallingCallParams* param = [[V2NIMSignallingCallParams alloc] init];
    // 被呼叫者账号ID不能填自己的账号ID
    param.calleeAccountId = @"Account ID";
    param.requestId = @"Request ID";
    // 创建音频频道
    V.channelType = V2NIM_SIGNALLING_CHANNEL_TYPE_AUDIO;
    param.channelName = @"Channel Name";
    
    [[NIMSDK sharedSDK].v2SignallingService call:param success:^(V2NIMSignallingCallResult *result) {
        // Your Code
    } failure:^(V2NIMError *error) {
        // Your Code
    }];
    
    Windows/macOS
    cppV2NIMSignallingCallParams callParameter;
    callParameter.calleeAccountId = "calleeAccountId";
    callParameter.requestId = "request UUID";
    callParameter.channelType = V2NIM_SIGNALLING_CHANNEL_TYPE_AUDIO;
    signallingService.call(
        callParameter,
        [](const V2NIMSignallingCallResult& result) {
            // call success
        },
        [](V2NIMError error) {
            // call failed, handle error
        });
    
    Web/uni-app/小程序
    typescriptconst params: V2NIMSignallingCallParams = {
      calleeAccountId: this.calleeAccountId,
      requestId: this.requestId,
      channelType: this.channelType,
      channelName: this.channelName,
      channelExtension: this.channelExtension,
      serverExtension: this.serverExtension,
      signallingConfig: {
        unreadEnabled: this.unreadEnabled,
        offlineEnabled: this.offlineEnabled,
        selfUid: this.selfUid
      },
      pushConfig: {
        pushEnabled: this.pushEnabled,
        pushTitle: this.pushTitle,
        pushContent: this.pushContent,
        pushPayload: this.pushPayload
      },
      rtcConfig: {
        rtcChannelName: this.rtcChannelName,
        rtcTokenTtl: this.rtcTokenTtl,
        rtcParams: this.rtcParams
      }
    }
    
    const result:V2NIMSignallingCallResult = await nimsdk.signallingService.call(params)
    
    HarmonyOS
    typescriptconst params: V2NIMSignallingCallParams = {
      calleeAccountId: this.calleeAccountId,
      requestId: this.requestId,
      channelType: this.channelType,
      channelName: this.channelName,
      channelExtension: this.channelExtension,
      serverExtension: this.serverExtension,
      signallingConfig: {
        unreadEnabled: this.unreadEnabled,
        offlineEnabled: this.offlineEnabled,
        selfUid: this.selfUid
      },
      pushConfig: {
        pushEnabled: this.pushEnabled,
        pushTitle: this.pushTitle,
        pushContent: this.pushContent,
        pushPayload: this.pushPayload
      },
      rtcConfig: {
        rtcChannelName: this.rtcChannelName,
        rtcTokenTtl: this.rtcTokenTtl,
        rtcParams: this.rtcParams
      }
    }
    
    const result:V2NIMSignallingCallResult = await nimsdk.signallingService.call(params)
    

    返回值

    Android/iOS/Windows/macOS

    无返回值

    Web/uni-app/小程序/HarmonyOS

    相关回调

    Android/Windows/macOS
    • 请求成功,返回 V2NIMSuccessCallback 回调,包含 V2NIMSignallingCallResult 结果。
    • 请求失败,返回 V2NIMFailuerCallback 回调,包含信令相关错误码。
    iOS
    • 请求成功,返回 V2NIMSignallingCallSuccess 回调,可自定义。
    • 请求失败,返回 V2NIMFailuerCallback 回调,包含信令相关错误码。
    Web/uni-app/小程序/HarmonyOS

    callSetup

    接口描述

    接通呼叫。

    接通呼叫的正常流程如下:

    
      flowchart LR
        classDef default fill:#337EFF,stroke:#337EFF,stroke-width:0px,color:#FFFFFF;
        
        A("加入信令频道房间(joinRoom)") --> B("接受对方的呼叫(acceptInvite)")
        click A "#joinRoom"
        click B "#acceptInvite"
    

    本接口组合上述两个接口,直接接通呼叫。如果您需要精确控制每一步,请通过调用单个接口实现。

    参数说明

    Android
    javavoid callSetup(V2NIMSignallingCallSetupParams params, V2NIMSuccessCallback<V2NIMSignallingCallSetupResult> success, V2NIMFailureCallback failure);
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingCallSetupParams - 接通呼叫的配置参数。
    success V2NIMSuccessCallback<V2NIMSignallingCallSetupResult> - 接通成功回调,返回 V2NIMSignallingCallSetupResult
    failure V2NIMFailureCallback - 接通失败回调,返回 错误码
    iOS
    objective-c- (void)callSetup:(V2NIMSignallingCallSetupParams*)param
              success:(V2NIMSignallingCallSetupSuccess)success
              failure:(V2NIMFailureCallback)failure;
    
    参数名称 类型 是否必填 默认值 描述
    param V2NIMSignallingCallSetupParams - 接通呼叫的配置参数。
    success V2NIMSignallingCallSetupSuccess - 接通成功回调,可自定义。
    failure V2NIMFailureCallback - 接通失败回调,返回 错误码
    Windows/macOS
    cppvirtual void v2::V2NIMSignallingService::callSetup	(	const V2NIMSignallingCallSetupParams & 	params,
                                                          const V2NIMSuccessCallback< V2NIMSignallingCallSetupResult > & 	success,
                                                          const V2NIMFailureCallback & 	failure )	
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingCallSetupParams - 接通呼叫的配置参数。
    success V2NIMSuccessCallback<V2NIMSignallingCallSetupResult> - 接通成功回调,返回 V2NIMSignallingCallSetupResult
    failure V2NIMFailureCallback - 接通失败回调,返回 错误码
    Web/uni-app/小程序
    typescriptcallSetup(params: V2NIMSignallingCallSetupParams): Promise<V2NIMSignallingCallSetupResult>
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingCallSetupParams - 接通呼叫的配置参数。
    HarmonyOS
    typescriptcallSetup(params: V2NIMSignallingCallSetupParams): Promise<V2NIMSignallingCallSetupResult>
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingCallSetupParams - 接通呼叫的配置参数。

    示例代码

    Android
    javaString channelId = "channelId";
    //被呼叫者账号ID不能填自己的账号ID
    String callerAccountId = "caller account id";
    //请求ID
    String requestId = "123456";
    //信令配置
    V2NIMSignallingConfig v2NIMSignallingConfig = new V2NIMSignallingConfig();
    //音视频配置
    V2NIMSignallingRtcConfig v2NIMSignallingRtcConfig = new V2NIMSignallingRtcConfig("rtcChannelName",60 * 60L,null);
    
    
    V2NIMSignallingCallSetupParams setupParams = new V2NIMSignallingCallSetupParams.Builder(channelId, callerAccountId, requestId)
        .serverExtension("serverExtension")
        .signallingConfig(v2NIMSignallingConfig)
        .rtcConfig(v2NIMSignallingRtcConfig)
        .build();
    
    NIMClient.getService(V2NIMSignallingService.class).callSetup(setupParams, new V2NIMSuccessCallback<V2NIMSignallingCallSetupResult>() {
        @Override
        public void onSuccess(V2NIMSignallingCallSetupResult v2NIMSignallingCallSetupResult) {
            //call setup success
        }
    }, new V2NIMFailureCallback() {
        @Override
        public void onFailure(V2NIMError error) {
            //call setup failure
        }
    });
    
    iOS
    objective-cV2NIMSignallingCallSetupParams* param = [[V2NIMSignallingCallSetupParams alloc] init];
    param.channelId = @"Channel ID";
    // 接受的呼叫者账号ID,不能填自己的账号ID
    param.callerAccountId = @"Account ID";
    param.requestId = @"Request ID";
    
    [[NIMSDK sharedSDK].v2SignallingService callSetup:param success:^(V2NIMSignallingCallSetupResult *result) {
        // Your Code
    } failure:^(V2NIMError *error) {
        // Your Code
    }];
    
    Windows/macOS
    cppV2NIMSignallingCallSetupParams callSetupParams;
    callSetupParams.channelId = "channelId";
    callSetupParams.callerAccountId = "callerAccountId";
    callSetupParams.requestId = "request UUID";
    signallingService.callSetup(
        callSetupParams,
        [](const V2NIMSignallingCallSetupResult& result) {
            // call setup success
        },
        [](V2NIMError error) {
            // call setup failed, handle error
        });
    
    Web/uni-app/小程序
    typescriptconst params: V2NIMSignallingCallSetupParams = {
      callerAccountId: this.callerAccountId,
      requestId: this.requestId,
      channelId: this.channelId,
      serverExtension: this.serverExtension,
      signallingConfig: {
        unreadEnabled: this.unreadEnabled,
        offlineEnabled: this.offlineEnabled,
        selfUid: this.selfUid
      },
      rtcConfig: {
        rtcChannelName: this.rtcChannelName,
        rtcTokenTtl: this.rtcTokenTtl,
        rtcParams: this.rtcParams
      }
    }
    
    const result:V2NIMSignallingCallSetupResult = await nimsdk.signallingService.callSetup(params)
    
    HarmonyOS
    typescriptconst params: V2NIMSignallingCallSetupParams = {
      callerAccountId: this.callerAccountId,
      requestId: this.requestId,
      channelId: this.channelId,
      serverExtension: this.serverExtension,
      signallingConfig: {
        unreadEnabled: this.unreadEnabled,
        offlineEnabled: this.offlineEnabled,
        selfUid: this.selfUid
      },
      rtcConfig: {
        rtcChannelName: this.rtcChannelName,
        rtcTokenTtl: this.rtcTokenTtl,
        rtcParams: this.rtcParams
      }
    }
    
    const result:V2NIMSignallingCallSetupResult = await nimsdk.signallingService.callSetup(params)
    

    返回值

    Android/iOS/Windows/macOS

    无返回值

    Web/uni-app/小程序/HarmonyOS

    相关回调

    Android/Windows/macOS
    • 请求成功,返回 V2NIMSuccessCallback 回调,包含 V2NIMSignallingCallSetupResult 结果。
    • 请求失败,返回 V2NIMFailuerCallback 回调,包含信令相关错误码。
    iOS
    • 请求成功,返回 V2NIMSignallingCallSetupSuccess 回调,可自定义。
    • 请求失败,返回 V2NIMFailuerCallback 回调,包含信令相关错误码。
    Web/uni-app/小程序/HarmonyOS

    createRoom

    接口描述

    创建信令频道房间。

    • 频道与房间一一对应,可直接视为同一含义。
    • 在服务器中,频道名称存在唯一性,即相同的频道名,在服务器同时只能存在一个。
    • 频道房间创建后,默认的有效时间为 2 小时。
    • 频道房间中的人数默认上限为 100。

    参数说明

    Android
    javavoid createRoom(V2NIMSignallingChannelType channelType, String channelName, String channelExtension, V2NIMSuccessCallback<V2NIMSignallingChannelInfo> success, V2NIMFailureCallback  failure);
    
    参数名称 类型 是否必填 默认值 描述
    channelType V2NIMSignallingChannelType - 频道类型。可选择音频、视频或自定义频道。
    房间创建后与频道类型绑定。
    channelName String - 频道名称。
    建议使用与业务有相关场景的名称,便于页面显示。
    channelExtension String - 频道相关扩展字段,JSON 格式,长度最大为 4096 字符。
    success V2NIMSuccessCallback<V2NIMSignallingChannelInfo> - 创建成功回调,返回 V2NIMSignallingChannelInfo
    failure V2NIMFailureCallback - 创建失败回调,返回 错误码
    iOS
    objective-c- (void)createRoom:(V2NIMSignallingChannelType)channelType
           channelName:(nullable NSString *)channelName
      channelExtension:(nullable NSString *)channelExtension
               success:(V2NIMSignallingCreateRoomSuccess)success
               failure:(V2NIMFailureCallback)failure;
    
    参数名称 类型 是否必填 默认值 描述
    channelType V2NIMSignallingChannelType - 频道类型。可选择音频、视频或自定义频道。
    房间创建后与频道类型绑定。
    channelName NSString - 频道名称。
    建议使用与业务有相关场景的名称,便于页面显示。
    channelExtension NSString - 频道相关扩展字段,JSON 格式,长度最大为 4096 字符。
    success V2NIMSignallingCreateRoomSuccess - 创建成功回调,可自定义。
    failure V2NIMFailureCallback - 创建失败回调,返回 错误码
    Windows/macOS
    cppvirtual void v2::V2NIMSignallingService::createRoom	(	V2NIMSignallingChannelType 	channelType,
                                                          const nstd::optional< nstd::string > & 	channelName,
                                                          const nstd::optional< nstd::string > & 	channelExtension,
                                                          const V2NIMSuccessCallback< const V2NIMSignallingChannelInfo & > & 	success,
                                                          const V2NIMFailureCallback & 	failure )	
    
    参数名称 类型 是否必填 默认值 描述
    channelType V2NIMSignallingChannelType - 频道类型。可选择音频、视频或自定义频道。
    房间创建后与频道类型绑定。
    channelName nstd::string - 频道名称。
    建议使用与业务有相关场景的名称,便于页面显示。
    channelExtension nstd::string - 频道相关扩展字段,JSON 格式,长度最大为 4096 字符。
    success V2NIMSuccessCallback<const V2NIMSignallingChannelInfo &> - 创建成功回调,返回 V2NIMSignallingChannelInfo
    failure V2NIMFailureCallback - 创建失败回调,返回 错误码
    Web/uni-app/小程序
    typescriptcreateRoom(channelType: V2NIMSignallingChannelType, channelName?: string, channelExtension?: string): Promise<V2NIMSignallingChannelInfo>
    
    参数名称 类型 是否必填 默认值 描述
    channelType V2NIMSignallingChannelType - 频道类型。可选择音频、视频或自定义频道。
    房间创建后与频道类型绑定。
    channelName string - 频道名称。
    建议使用与业务有相关场景的名称,便于页面显示。
    channelExtension string - 频道相关扩展字段,JSON 格式,长度最大为 4096 字符。
    HarmonyOS
    typescriptcreateRoom(channelType: V2NIMSignallingChannelType,
        channelName?: string,
        channelExtension?: string): Promise<V2NIMSignallingChannelInfo>
    
    参数名称 类型 是否必填 默认值 描述
    channelType V2NIMSignallingChannelType - 频道类型。可选择音频、视频或自定义频道。
    房间创建后与频道类型绑定。
    channelName string - 频道名称。
    建议使用与业务有相关场景的名称,便于页面显示。
    channelExtension string - 频道相关扩展字段,JSON 格式,长度最大为 4096 字符。

    示例代码

    Android
    java//频道类型
    V2NIMSignallingChannelType channelType = V2NIMSignallingChannelType.V2NIM_SIGNALLING_CHANNEL_TYPE_VIDEO;
    //频道名称
    String channelName = "channelName";
    //频道扩展字段
    String channelExtension = "channelExtension";
    NIMClient.getService(V2NIMSignallingService.class).createRoom(channelType, channelName, channelExtension, new V2NIMSuccessCallback<V2NIMSignallingChannelInfo>() {
        @Override
        public void onSuccess(V2NIMSignallingChannelInfo v2NIMSignallingChannelInfo) {
            //create room success
        }
    }, new V2NIMFailureCallback() {
        @Override
        public void onFailure(V2NIMError error) {
            //create room failure
        }
    });
    
    iOS
    objective-c// 创建视频频道
    V2NIMSignallingChannelType channelType = V2NIM_SIGNALLING_CHANNEL_TYPE_VIDEO;
    NSString *channelName = @"Channel Name";
    NSString *channelExtension = @"{\"key\": \"value\"}";
    [[NIMSDK sharedSDK].v2SignallingService createRoom:channelType channelName:channelName channelExtension:channelExtension success:^(V2NIMSignallingChannelInfo *result) {
        // Your Code
    } failure:^(V2NIMError *error) {
        // Your Code
    }];
    
    Windows/macOS
    cppsignallingService.createRoom(
        V2NIM_SIGNALLING_CHANNEL_TYPE_AUDIO,
        "channelName",
        "{\"key\":\"value\"}",
        [](const V2NIMSignallingChannelInfo& result) {
            // create room success
        },
        [](V2NIMError error) {
            // create room failed, handle error
        });
    
    Web/uni-app/小程序
    typescriptconst result:V2NIMSignallingChannelInfo = await nimsdk.signallingService.createRoom(this.channelType,
      this.channelName, this.channelExt)
    
    HarmonyOS
    typescriptconst result:V2NIMSignallingChannelInfo = await nimsdk.signallingService.createRoom(this.channelType,
        this.channelName, this.channelExt)
    

    返回值

    Android/iOS/Windows/macOS

    无返回值

    Web/uni-app/小程序/HarmonyOS

    相关回调

    Android/Windows/macOS
    • 请求成功,返回 V2NIMSuccessCallback 回调,包含 V2NIMSignallingChannelInfo 结果。
    • 请求失败,返回 V2NIMFailuerCallback 回调,包含信令相关错误码。
    iOS
    • 请求成功,返回 V2NIMSignallingCreateRoomSuccess 回调,可自定义。
    • 请求失败,返回 V2NIMFailuerCallback 回调,包含信令相关错误码。
    Web/uni-app/小程序/HarmonyOS

    closeRoom

    接口描述

    关闭信令频道房间。

    房间内的所有人都可以关闭信令频道房间。关闭后,房间内的所有人都会收到房间被关闭的通知。

    如果房间内的用户都没有主动关闭信令频道房间,那么服务器默认在会 2 小时后销毁该信令频道房间(2 小时内没有新用户加入房间,如有,从加入后再开始计算)。

    参数说明

    Android
    javavoid closeRoom(String channelId, boolean offlineEnabled,String serverExtension,V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
    
    参数名称 类型 是否必填 默认值 描述
    channelId String - 频道 ID,房间的唯一标识。
    offlineEnabled Boolean false 是否需要存离线消息。默认为 false,即不存。如果设置为 true,存离线,则用户离线状态下再次上线会收到通知消息。
    serverExtension String - 服务端扩展字段,JSON 格式,长度最大为 4096 字符。
    success V2NIMSuccessCallback - 关闭成功回调。
    failure V2NIMFailureCallback - 关闭失败回调,返回 错误码
    iOS
    objective-c- (void)closeRoom:(NSString *)channelId
       offlineEnabled:(BOOL)offlineEnabled
      serverExtension:(nullable NSString *)serverExtension
              success:(V2NIMSuccessCallback)success
              failure:(V2NIMFailureCallback)failure;
    
    参数名称 类型 是否必填 默认值 描述
    channelId NSString - 频道 ID,房间的唯一标识。
    offlineEnabled BOOL false 是否需要存离线消息。默认为 false,即不存。如果设置为 true,存离线,则用户离线状态下再次上线会收到通知消息。
    serverExtension NSString - 服务端扩展字段,JSON 格式,长度最大为 4096 字符。
    success V2NIMSuccessCallback - 关闭成功回调。
    failure V2NIMFailureCallback - 关闭失败回调,返回 错误码
    Windows/macOS
    cppvirtual void v2::V2NIMSignallingService::closeRoom	(	const nstd::string & 	channelId,
                                                          const nstd::optional< bool > & 	offlineEnabled,
                                                          const nstd::optional< nstd::string > & 	serverExtension,
                                                          const V2NIMSuccessCallback< void > & 	success,
                                                          const V2NIMFailureCallback & 	failure )	
    
    参数名称 类型 是否必填 默认值 描述
    channelId nstd::string - 频道 ID,房间的唯一标识。
    offlineEnabled bool false 是否需要存离线消息。默认为 false,即不存。如果设置为 true,存离线,则用户离线状态下再次上线会收到通知消息。
    serverExtension nstd::string - 服务端扩展字段,JSON 格式,长度最大为 4096 字符。
    success V2NIMSuccessCallback - 关闭成功回调。
    failure V2NIMFailureCallback - 关闭失败回调,返回 错误码
    Web/uni-app/小程序
    typescriptcloseRoom(channelId: string, offlineEnabled?: boolean, serverExtension?: string): Promise<void>
    
    参数名称 类型 是否必填 默认值 描述
    channelId string - 频道 ID,房间的唯一标识。
    offlineEnabled boolean false 是否需要存离线消息。默认为 false,即不存。如果设置为 true,存离线,则用户离线状态下再次上线会收到通知消息。
    serverExtension string - 服务端扩展字段,JSON 格式,长度最大为 4096 字符。
    HarmonyOS
    typescriptcloseRoom(channelId: string, offlineEnabled?: boolean, serverExtension?: string): Promise<void>
    
    参数名称 类型 是否必填 默认值 描述
    channelId string - 频道 ID,房间的唯一标识。
    offlineEnabled boolean false 是否需要存离线消息。默认为 false,即不存。如果设置为 true,存离线,则用户离线状态下再次上线会收到通知消息。
    serverExtension string - 服务端扩展字段,JSON 格式,长度最大为 4096 字符。

    示例代码

    Android
    javaString channelId = "channelId";
    //是否需要存离线消息。如果存离线,则用户离线再上线会收到该通知
    boolean offlineEnabled = true;
    //服务端扩展字段, 长度限制4096
    String serverExtension = "serverExtension";
    
    NIMClient.getService(V2NIMSignallingService.class).closeRoom(channelId, true, "serverExtension", new V2NIMSuccessCallback<Void>() {
        @Override
        public void onSuccess(Void aVoid) {
            //close room success
        }
    }, new V2NIMFailureCallback() {
        @Override
        public void onFailure(V2NIMError error) {
            //close room failure
        }
    });
    
    iOS
    objective-cNSString * channelId = @"Channel ID";
    BOOL offlineEnabled = YES;
    NSString *serverExtension = @"{\"key\": \"value\"}";
    [[NIMSDK sharedSDK].v2SignallingService closeRoom:channelId offlineEnabled:offlineEnabled serverExtension:serverExtension success:^() {
        // Your Code
    } failure:^(V2NIMError *error) {
        // Your Code
    }];
    
    Windows/macOS
    cppsignallingService.closeRoom(
        "channelId",
        true,
        "{\"key\":\"value\"}",
        []() {
            // close room success
        },
        [](V2NIMError error) {
            // close room failed, handle error
        });
    
    Web/uni-app/小程序
    typescriptconst channelId = 'XXX_Id'
    const offlineEnabled = false 
    const serverExtension = ''
    await nimsdk.signallingService.closeRoom(channelId, offlineEnabled, serverExtension)
    
    HarmonyOS
    typescriptconst channelId = 'XXX_Id'
    const offlineEnabled = false 
    const serverExtension = ''
    await nimsdk.signallingService.closeRoom(channelId, offlineEnabled, serverExtension)
    

    返回值

    Android/iOS/Windows/macOS

    无返回值

    Web/uni-app/小程序/HarmonyOS

    Promise<void>

    相关回调

    Android/iOS/Windows/macOS
    • 请求成功,返回 V2NIMSuccessCallback 回调。
    • 请求失败,返回 V2NIMFailuerCallback 回调,包含信令相关错误码。
    Web/uni-app/小程序/HarmonyOS

    joinRoom

    接口描述

    加入信令频道房间。加入房间后,房间内的所有人都会收到通知。

    参数说明

    Android
    javavoid joinRoom(V2NIMSignallingJoinParams params, V2NIMSuccessCallback<V2NIMSignallingRoomInfo> success, V2NIMFailureCallback failure);
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingJoinParams - 加入频道房间的配置参数。
    success V2NIMSuccessCallback<V2NIMSignallingRoomInfo> - 加入成功回调,包含 V2NIMSignallingRoomInfo
    failure V2NIMFailureCallback - 加入失败回调,返回 错误码
    iOS
    objective-c- (void)joinRoom:(V2NIMSignallingJoinParams *)param
             success:(V2NIMSignallingJoinRoomSuccess)success
             failure:(V2NIMFailureCallback)failure;
    
    参数名称 类型 是否必填 默认值 描述
    param V2NIMSignallingJoinParams - 加入频道房间的配置参数。
    success V2NIMSignallingJoinRoomSuccess - 加入成功回调,可自定义。
    failure V2NIMFailureCallback - 加入失败回调,返回 错误码
    Windows/macOS
    cppvirtual void v2::V2NIMSignallingService::joinRoom	(	const V2NIMSignallingJoinParams & 	params,
                                                        const V2NIMSuccessCallback< const V2NIMSignallingRoomInfo & > & 	success,
                                                        const V2NIMFailureCallback & 	failure )	
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingJoinParams - 加入频道房间的配置参数。
    success V2NIMSuccessCallback<const V2NIMSignallingRoomInfo &> - 加入成功回调,包含 V2NIMSignallingRoomInfo
    failure V2NIMFailureCallback - 加入失败回调,返回 错误码
    Web/uni-app/小程序
    typescriptjoinRoom(params: V2NIMSignallingJoinParams): Promise<V2NIMSignallingRoomInfo>
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingJoinParams - 加入频道房间的配置参数。
    HarmonyOS
    typescriptjoinRoom(params: V2NIMSignallingJoinParams): Promise<V2NIMSignallingRoomInfo>
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingJoinParams - 加入频道房间的配置参数。

    示例代码

    Android
    javaString channelId = "channelId";
    //信令配置
    V2NIMSignallingConfig v2NIMSignallingConfig = new V2NIMSignallingConfig();
    //音视频配置
    V2NIMSignallingRtcConfig v2NIMSignallingRtcConfig = new V2NIMSignallingRtcConfig("rtcChannelName",60 * 60L,null);
    
    V2NIMSignallingJoinParams params = new V2NIMSignallingJoinParams.Builder(channelId)
        .serverExtension("serverExtension")
        .signallingConfig(v2NIMSignallingConfig)
        .rtcConfig(v2NIMSignallingRtcConfig)
        .build();
    NIMClient.getService(V2NIMSignallingService.class).joinRoom(params, new V2NIMSuccessCallback<V2NIMSignallingRoomInfo>() {
        @Override
        public void onSuccess(V2NIMSignallingRoomInfo v2NIMSignallingRoomInfo) {
            //join room success
        }
    }, new V2NIMFailureCallback() {
        @Override
        public void onFailure(V2NIMError error) {
            //join room failure
        }
    });
    
    iOS
    objective-cV2NIMSignallingJoinParams * param = [[V2NIMSignallingJoinParams alloc] init];
    param.channelId = @"Channel ID";
    param.serverExtension = @"{\"key\": \"value\"}";
    [[NIMSDK sharedSDK].v2SignallingService joinRoom:param success:^(V2NIMSignallingRoomInfo *result) {
        // Your Code
    } failure:^(V2NIMError *error) {
        // Your Code
    }];
    
    Windows/macOS
    cppV2NIMSignallingJoinParams joinParameter;
    joinParams.channelId = "channelId";
    signallingService.joinRoom(
        joinParameter,
        [](const V2NIMSignallingChannelInfo& result) {
            // join room success
        },
        [](V2NIMError error) {
            // join room failed, handle error
        });
    
    Web/uni-app/小程序
    typescriptconst signallingConfig = {
      offlineEnabled : this.offlineEnabled,
      unreadEnabled: this.unreadEnabled,
      selfUid: this.selfUid
    } as V2NIMSignallingConfig
    
    const rtcConfig= {
      rtcChannelName: this.rtcChannelName,
      rtcTokenTtl: this.rtcTokenTtl,
      rtcParams: this.rtcParams
    } as V2NIMSignallingRtcConfig
    
    const params: V2NIMSignallingJoinParams = {
      channelId: this.channelId,
      serverExtension: this.serverExtension,
      signallingConfig: signallingConfig,
      rtcConfig: rtcConfig
    }
    
    const result:V2NIMSignallingRoomResult = await nimsdk.signallingService.joinRoom(params)
    
    HarmonyOS
    typescriptconst signallingConfig = {
      offlineEnabled : this.offlineEnabled,
      unreadEnabled: this.unreadEnabled,
      selfUid: this.selfUid
    } as V2NIMSignallingConfig
    
    const rtcConfig= {
      rtcChannelName: this.rtcChannelName,
      rtcTokenTtl: this.rtcTokenTtl,
      rtcParams: this.rtcParams
    } as V2NIMSignallingRtcConfig
    
    const params: V2NIMSignallingJoinParams = {
      channelId: this.channelId,
      serverExtension: this.serverExtension,
      signallingConfig: signallingConfig,
      rtcConfig: rtcConfig
    }
    
    const result:V2NIMSignallingRoomResult = await nimsdk.signallingService.joinRoom(params)
    

    返回值

    Android/iOS/Windows/macOS

    无返回值

    Web/uni-app/小程序/HarmonyOS

    相关回调

    Android/Windows/macOS
    • 请求成功,返回 V2NIMSuccessCallback 回调,结果包含 V2NIMSignallingRoomInfo
    • 请求失败,返回 V2NIMFailuerCallback 回调,包含信令相关错误码。
    iOS
    • 请求成功,返回 V2NIMSignallingJoinRoomSuccess 回调,可自定义。
    • 请求失败,返回 V2NIMFailuerCallback 回调,包含信令相关错误码。
    Web/uni-app/小程序/HarmonyOS

    leaveRoom

    接口描述

    离开信令频道房间。离开房间后,房间内的所有人都会收到通知。

    参数说明

    Android
    javavoid leaveRoom(String channelId, boolean offlineEnabled,String serverExtension,V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
    
    参数名称 类型 是否必填 默认值 描述
    channelId String - 频道 ID,房间的唯一标识。
    offlineEnabled Boolean false 是否需要存离线消息。默认为 false,即不存。如果设置为 true,存离线,则用户离线状态下再次上线会收到通知消息。
    serverExtension String - 服务端扩展字段,JSON 格式,长度最大为 4096 字符。
    success V2NIMSuccessCallback - 离开成功回调。
    failure V2NIMFailureCallback - 离开失败回调,返回 错误码
    iOS
    objective-c- (void)leaveRoom:(NSString *)channelId
       offlineEnabled:(BOOL)offlineEnabled
      serverExtension:(nullable NSString *)serverExtension
              success:(V2NIMSuccessCallback)success
              failure:(V2NIMFailureCallback)failure;
    
    参数名称 类型 是否必填 默认值 描述
    channelId NSString - 频道 ID,房间的唯一标识。
    offlineEnabled BOOL false 是否需要存离线消息。默认为 false,即不存。如果设置为 true,存离线,则用户离线状态下再次上线会收到通知消息。
    serverExtension NSString - 服务端扩展字段,JSON 格式,长度最大为 4096 字符。
    success V2NIMSuccessCallback - 离开成功回调。
    failure V2NIMFailureCallback - 离开失败回调,返回 错误码
    Windows/macOS
    cppvirtual void v2::V2NIMSignallingService::leaveRoom	(	const nstd::string & 	channelId,
                                                          const nstd::optional< bool > & 	offlineEnabled,
                                                          const nstd::optional< nstd::string > & 	serverExtension,
                                                          const V2NIMSuccessCallback< void > & 	success,
                                                          const V2NIMFailureCallback & 	failure )	
    
    参数名称 类型 是否必填 默认值 描述
    channelId nstd::string - 频道 ID,房间的唯一标识。
    offlineEnabled bool false 是否需要存离线消息。默认为 false,即不存。如果设置为 true,存离线,则用户离线状态下再次上线会收到通知消息。
    serverExtension nstd::string - 服务端扩展字段,JSON 格式,长度最大为 4096 字符。
    success V2NIMSuccessCallback - 离开成功回调。
    failure V2NIMFailureCallback - 离开失败回调,返回 错误码
    Web/uni-app/小程序
    typescriptleaveRoom(channelId: string, offlineEnabled?: boolean, serverExtension?: string): Promise<void>
    
    参数名称 类型 是否必填 默认值 描述
    channelId string - 频道 ID,房间的唯一标识。
    offlineEnabled boolean false 是否需要存离线消息。默认为 false,即不存。如果设置为 true,存离线,则用户离线状态下再次上线会收到通知消息。
    serverExtension string - 服务端扩展字段,JSON 格式,长度最大为 4096 字符。
    HarmonyOS
    typescriptleaveRoom(channelId: string, offlineEnabled?: boolean, serverExtension?: string): Promise<void>
    
    参数名称 类型 是否必填 默认值 描述
    channelId string - 频道 ID,房间的唯一标识。
    offlineEnabled boolean false 是否需要存离线消息。默认为 false,即不存。如果设置为 true,存离线,则用户离线状态下再次上线会收到通知消息。
    serverExtension string - 服务端扩展字段,JSON 格式,长度最大为 4096 字符。

    示例代码

    Android
    javaString channelId = "channelId";
    //是否需要存离线消息。如果存离线,则用户离线再上线会收到该通知
    boolean offlineEnabled = true;
    //服务端扩展字段, 长度限制4096
    String serverExtension = "serverExtension";
    
    NIMClient.getService(V2NIMSignallingService.class).leaveRoom(channelId,offlineEnabled,serverExtension, new V2NIMSuccessCallback<Void>() {
        @Override
        public void onSuccess(Void aVoid) {
            //leave room success
        }
    }, new V2NIMFailureCallback() {
        @Override
        public void onFailure(V2NIMError error) {
            //leave room failure
        }
    });
    
    iOS
    objective-cNSString * channelId = @"Channel ID";
    BOOL offlineEnabled = YES;
    NSString *serverExtension = @"{\"key\": \"value\"}";
    [[NIMSDK sharedSDK].v2SignallingService leaveRoom:channelId offlineEnabled:offlineEnabled serverExtension:serverExtension success:^() {
        // Your Code
    } failure:^(V2NIMError *error) {
        // Your Code
    }];
    
    Windows/macOS
    cppsignallingService.leaveRoom(
        "channelId",
        true,
        "{\"key\":\"value\"}",
        []() {
            // leave room success
        },
        [](V2NIMError error) {
            // leave room failed, handle error
        });
    
    Web/uni-app/小程序
    typescriptawait nimsdk.signallingService.leaveRoom(this.channelId, this.offlineEnabled, this.serverExtension)
    
    HarmonyOS
    typescriptawait nimsdk.signallingService.leaveRoom(this.channelId, this.offlineEnabled, this.serverExtension)
    

    返回值

    Android/iOS/Windows/macOS

    无返回值

    Web/uni-app/小程序/HarmonyOS

    Promise<void>

    相关回调

    Android/iOS/Windows/macOS
    • 请求成功,返回 V2NIMSuccessCallback 回调。
    • 请求失败,返回 V2NIMFailuerCallback 回调,包含信令相关错误码。
    Web/uni-app/小程序/HarmonyOS

    invite

    接口描述

    邀请成员加入信令频道房间。房间内的所有人都能邀请他人进入房间。

    发出邀请后,被邀请者会收到通知。

    邀请方在邀请时可以配置是否向被邀请方发送推送消息,默认不推送。如果选择推送,但未配置推送相关信息,则服务器将默认发送以下信息:

    • 房间频道类型为音频:xx邀请你进行语音通话
    • 房间频道类型为视频:xx邀请你进行视频通话
    • 房间频道类型为自定义 xx邀请你进行音视频通话

    参数说明

    Android
    javavoid invite(V2NIMSignallingInviteParams params, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingInviteParams - 邀请入房的配置参数。
    success V2NIMSuccessCallback - 邀请成功回调。
    failure V2NIMFailureCallback - 邀请失败回调,返回 错误码
    iOS
    objective-c- (void)invite:(V2NIMSignallingInviteParams *)param
           success:(V2NIMSuccessCallback)success
           failure:(V2NIMFailureCallback)failure;
    
    参数名称 类型 是否必填 默认值 描述
    param V2NIMSignallingInviteParams - 邀请入房的配置参数。
    success V2NIMSuccessCallback - 邀请成功回调。
    failure V2NIMFailureCallback - 邀请失败回调,返回 错误码
    Windows/macOS
    cppvirtual void v2::V2NIMSignallingService::invite	(	const V2NIMSignallingInviteParams & 	params,
                                                      const V2NIMSuccessCallback< void > & 	success,
                                                      const V2NIMFailureCallback & 	failure )	
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingInviteParams - 邀请入房的配置参数。
    success V2NIMSuccessCallback - 邀请成功回调。
    failure V2NIMFailureCallback - 邀请失败回调,返回 错误码
    Web/uni-app/小程序
    typescriptinvite(params: V2NIMSignallingInviteParams): Promise<void>
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingInviteParams - 邀请入房的配置参数。
    HarmonyOS
    typescriptinvite(params: V2NIMSignallingInviteParams): Promise<void>
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingInviteParams - 邀请入房的配置参数。

    示例代码

    Android
    javaString channelId = "channelId";
    //被邀请者账号ID
    String inviteeAccountId = "inviteeAccountId";
    //请求ID
    String requestId = "123456";
    //服务端扩展字段
    String serverExtension = "serverExtension";
    //推送配置
    V2NIMSignallingPushConfig v2NIMSignallingPushConfig = new V2NIMSignallingPushConfig();
    //信令配置
    V2NIMSignallingConfig v2NIMSignallingConfig = new V2NIMSignallingConfig();
    
    V2NIMSignallingInviteParams params = new V2NIMSignallingInviteParams.Builder(channelId, inviteeAccountId, requestId)
        .serverExtension("serverExtension")
        .signallingConfig(new V2NIMSignallingConfig())
        .pushConfig(new V2NIMSignallingPushConfig())
        .build();
    
    NIMClient.getService(V2NIMSignallingService.class).invite(params, new V2NIMSuccessCallback<Void>() {
        @Override
        public void onSuccess(Void unused) {
    
        }
    }, new V2NIMFailureCallback() {
        @Override
        public void onFailure(V2NIMError error) {
            
        }
    });
    
    iOS
    objective-cV2NIMSignallingInviteParams * param = [[V2NIMSignallingInviteParams alloc] init];
    param.channelId = @"Channel ID";
    // 被邀请者账号ID,不能填自己的账号ID
    param.inviteeAccountId = @"Account ID";
    param.requestId = @"Request ID";
    param.serverExtension = @"{\"key\": \"value\"}";
    [[NIMSDK sharedSDK].v2SignallingService invite:param success:^() {
        // Your Code
    } failure:^(V2NIMError *error) {
        // Your Code
    }];
    
    Windows/macOS
    cppV2NIMSignallingInviteParams inviteParameter;
    inviteParameter.channelId = "channelId";
    inviteParameter.accountId = "accountId";
    inviteParameter.requestId = "request UUID";
    signallingService.invite(
        inviteParameter,
        []() {
            // invite success
        },
        [](V2NIMError error) {
            // invite failed, handle error
        });
    
    Web/uni-app/小程序
    typescriptconst params: V2NIMSignallingInviteParams = {
      channelId: this.channelId,
      inviteeAccountId: this.inviteeAccountId,
      requestId: this.requestId,
      serverExtension: this.serverExtension,
      pushConfig: {
        pushEnabled: this.pushEnabled,
        pushTitle: this.pushTitle,
        pushContent: this.pushContent,
        pushPayload: this.pushPayload
      },
      signallingConfig: {
        offlineEnabled: this.offlineEnabled,
        unreadEnabled: this.unreadEnabled,
        selfUid: this.selfUid
      }
    }
    
    await nimsdk.signallingService.invite(params)
    
    HarmonyOS
    typescriptconst params: V2NIMSignallingInviteParams = {
      channelId: this.channelId,
      inviteeAccountId: this.inviteeAccountId,
      requestId: this.requestId,
      serverExtension: this.serverExtension,
      pushConfig: {
        pushEnabled: this.pushEnabled,
        pushTitle: this.pushTitle,
        pushContent: this.pushContent,
        pushPayload: this.pushPayload
      },
      signallingConfig: {
        offlineEnabled: this.offlineEnabled,
        unreadEnabled: this.unreadEnabled,
        selfUid: this.selfUid
      }
    }
    
    await nimsdk.signallingService.invite(params)
    

    返回值

    Android/iOS/Windows/macOS

    无返回值

    Web/uni-app/小程序/HarmonyOS

    Promise<void>

    相关回调

    Android/iOS/Windows/macOS
    • 请求成功,返回 V2NIMSuccessCallback 回调。
    • 请求失败,返回 V2NIMFailuerCallback 回调,包含信令相关错误码。
    Web/uni-app/小程序/HarmonyOS

    cancelInvite

    接口描述

    取消已发出的进房邀请。

    房间内的用户邀请他人进入信令频道房间后,可以取消已发出的进房邀请。取消后,被邀请的用户会收到取消邀请的通知。

    只能取消自己发出的邀请,无法影响房间内其他用户发出的邀请。

    参数说明

    Android
    javavoid cancelInvite(V2NIMSignallingCancelInviteParams params, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure)
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingCancelInviteParams - 取消邀请的配置参数。
    success V2NIMSuccessCallback - 取消成功回调。
    failure V2NIMFailureCallback - 取消失败回调,返回 错误码
    iOS
    objective-c- (void)cancelInvite:(V2NIMSignallingCancelInviteParams*)param
                 success:(V2NIMSuccessCallback)success
                 failure:(V2NIMFailureCallback)failure;
    
    参数名称 类型 是否必填 默认值 描述
    param V2NIMSignallingCancelInviteParams - 取消邀请的配置参数。
    success V2NIMSuccessCallback - 取消成功回调。
    failure V2NIMFailureCallback - 取消失败回调,返回 错误码
    Windows/macOS
    cppvirtual void v2::V2NIMSignallingService::cancelInvite	(	const V2NIMSignallingCancelInviteParams & 	params,
                                                            const V2NIMSuccessCallback< void > & 	success,
                                                            const V2NIMFailureCallback & 	failure )		
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingCancelInviteParams - 取消邀请的配置参数。
    success V2NIMSuccessCallback - 取消成功回调。
    failure V2NIMFailureCallback - 取消失败回调,返回 错误码
    Web/uni-app/小程序
    typescriptcancelInvite(params: V2NIMSignallingCancelInviteParams): Promise<void>
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingCancelInviteParams - 取消邀请的配置参数。
    HarmonyOS
    typescriptcancelInvite(params: V2NIMSignallingCancelInviteParams): Promise<void>
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingCancelInviteParams - 取消邀请的配置参数。

    示例代码

    Android
    javaString channelId = "channelId";
    //被邀请者账号ID
    String inviteeAccountId = "inviteeAccountId";
    //请求ID
    String requestId = "123456";
    //服务端扩展字段
    String serverExtension = "serverExtension";
    //是否需要存离线消息。如果存离线,则用户离线再上线会收到该通知
    boolean offlineEnabled = true;
    
    V2NIMSignallingCancelInviteParams params = new V2NIMSignallingCancelInviteParams.Builder(channelId,inviteeAccountId,requestId)
        .serverExtension("serverExtension")
        .offlineEnabled(offlineEnabled)
        .build();
    NIMClient.getService(V2NIMSignallingService.class).cancelInvite(params, new V2NIMSuccessCallback<Void>() {
        @Override
        public void onSuccess(Void unused) {
    
        }
    }, new V2NIMFailureCallback() {
        @Override
        public void onFailure(V2NIMError error) {
            
        }
    });
    
    iOS
    objective-cV2NIMSignallingCancelInviteParams* param = [[V2NIMSignallingCancelInviteParams alloc] init];
    param.channelId = @"Channel ID";
    // 被邀请者账号ID,不能填自己的账号ID
    param.inviteeAccountId = @"Account ID";
    param.requestId = @"Request ID";
    param.serverExtension = @"{\"key\": \"value\"}";
    param.offlineEnabled = YES;
    
    [[NIMSDK sharedSDK].v2SignallingService cancelInvite:param success:^() {
        // Your Code
    } failure:^(V2NIMError *error) {
        // Your Code
    }];
    
    Windows/macOS
    cppV2NIMSignallingCancelInviteParams cancelInviteParameter;
    cancelInviteParameter.channelId = "channelId";
    cancelInviteParameter.accountId = "accountId";
    cancelInviteParameter.requestId = "request UUID";
    signallingService.cancelInvite(
        cancelInviteParameter,
        []() {
            // cancel invite success
        },
        [](V2NIMError error) {
            // cancel invite failed, handle error
        });
    
    Web/uni-app/小程序
    typescriptconst params: V2NIMSignallingCancelInviteParams = {
      channelId: this.channelId,
      inviteeAccountId: this.inviteeAccountId,
      requestId: this.requestId,
      serverExtension: this.serverExtension,
      offlineEnabled: this.offlineEnabled
    }
    
    await nimsdk.signallingService.cancelInvite(params)
    
    HarmonyOS
    typescriptconst params: V2NIMSignallingCancelInviteParams = {
      channelId: this.channelId,
      inviteeAccountId: this.inviteeAccountId,
      requestId: this.requestId,
      serverExtension: this.serverExtension,
      offlineEnabled: this.offlineEnabled
    }
    
    await nimsdk.signallingService.cancelInvite(params)
    

    返回值

    Android/iOS/Windows/macOS

    无返回值

    Web/uni-app/小程序/HarmonyOS

    Promise<void>

    相关回调

    Android/iOS/Windows/macOS
    • 请求成功,返回 V2NIMSuccessCallback 回调。
    • 请求失败,返回 V2NIMFailuerCallback 回调,包含信令相关错误码。
    Web/uni-app/小程序/HarmonyOS

    rejectInvite

    接口描述

    拒绝他人邀请入房的请求,即拒绝加入信令频道房间。拒绝后,邀请人会收到被拒绝的通知。

    参数说明

    Android
    javavoid rejectInvite(V2NIMSignallingRejectInviteParams params, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingRejectInviteParams - 拒绝邀请的配置参数。
    success V2NIMSuccessCallback - 拒绝成功回调。
    failure V2NIMFailureCallback - 拒绝失败回调,返回 错误码
    iOS
    objective-c- (void)rejectInvite:(V2NIMSignallingRejectInviteParams*)param
                 success:(V2NIMSuccessCallback)success
                 failure:(V2NIMFailureCallback)failure;
    
    参数名称 类型 是否必填 默认值 描述
    param V2NIMSignallingRejectInviteParams - 拒绝邀请的配置参数。
    success V2NIMSuccessCallback - 拒绝成功回调。
    failure V2NIMFailureCallback - 拒绝失败回调,返回 错误码
    Windows/macOS
    cppvirtual void v2::V2NIMSignallingService::rejectInvite	(	const V2NIMSignallingRejectInviteParams & 	params,
                                                            const V2NIMSuccessCallback< void > & 	success,
                                                            const V2NIMFailureCallback & 	failure )	
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingRejectInviteParams - 拒绝邀请的配置参数。
    success V2NIMSuccessCallback - 拒绝成功回调。
    failure V2NIMFailureCallback - 拒绝失败回调,返回 错误码
    Web/uni-app/小程序
    typescriptrejectInvite(params: V2NIMSignallingRejectInviteParams): Promise<void>
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingRejectInviteParams - 拒绝邀请的配置参数。
    HarmonyOS
    typescriptrejectInvite(params: V2NIMSignallingRejectInviteParams): Promise<void>
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingRejectInviteParams - 拒绝邀请的配置参数。

    示例代码

    Android
    javaString channelId = "channelId";
    //被邀请者账号ID
    String inviteeAccountId = "inviteeAccountId";
    //请求ID
    String requestId = "123456";
    //服务端扩展字段
    String serverExtension = "serverExtension";
    //是否需要存离线消息。如果存离线,则用户离线再上线会收到该通知
    boolean offlineEnabled = true;
    
    V2NIMSignallingRejectInviteParams params = new V2NIMSignallingRejectInviteParams.Builder(channelId, inviteeAccountId, requestId)
        .serverExtension(serverExtension)
        .offlineEnabled(offlineEnabled)
        .build();
    
    NIMClient.getService(V2NIMSignallingService.class).rejectInvite(params, new V2NIMSuccessCallback<Void>() {
        @Override
        public void onSuccess(Void unused) {
    
        }
    }, new V2NIMFailureCallback() {
        @Override
        public void onFailure(V2NIMError error) {
    
        }
    });
    
    iOS
    objective-cV2NIMSignallingRejectInviteParams* param = [[V2NIMSignallingRejectInviteParams alloc] init];
    param.channelId = @"Channel ID";
    // 邀请者账号ID,不能填自己的账号ID
    param.inviterAccountId = @"Account ID";
    param.requestId = @"Request ID";
    param.serverExtension = @"{\"key\": \"value\"}";
    [[NIMSDK sharedSDK].v2SignallingService rejectInvite:param success:^() {
        // Your Code
    } failure:^(V2NIMError *error) {
        // Your Code
    }];
    
    Windows/macOS
    cppV2NIMSignallingRejectInviteParams rejectInviteParameter;
    rejectInviteParameter.channelId = "channelId";
    rejectInviteParameter.accountId = "accountId";
    rejectInviteParameter.requestId = "request UUID";
    signallingService.rejectInvite(
        rejectInviteParameter,
        []() {
            // reject invite success
        },
        [](V2NIMError error) {
            // reject invite failed, handle error
        });
    
    Web/uni-app/小程序
    typescriptconst params: V2NIMSignallingRejectInviteParams = {
      channelId: this.channelId,
      inviterAccountId: this.inviterAccountId,
      requestId: this.requestId,
      serverExtension: this.serverExtension,
      offlineEnabled: this.offlineEnabled
    }
    
    await nimsdk.signallingService.rejectInvite(params)
    
    HarmonyOS
    typescriptconst params: V2NIMSignallingRejectInviteParams = {
      channelId: this.channelId,
      inviterAccountId: this.inviterAccountId,
      requestId: this.requestId,
      serverExtension: this.serverExtension,
      offlineEnabled: this.offlineEnabled
    }
    
    await nimsdk.signallingService.rejectInvite(params)
    

    返回值

    Android/iOS/Windows/macOS

    无返回值

    Web/uni-app/小程序/HarmonyOS

    Promise<void>

    相关回调

    Android/iOS/Windows/macOS
    • 请求成功,返回 V2NIMSuccessCallback 回调。
    • 请求失败,返回 V2NIMFailuerCallback 回调,包含信令相关错误码。
    Web/uni-app/小程序/HarmonyOS

    acceptInvite

    接口描述

    接受他人邀请入房的请求,即加入信令频道房间。接受后,邀请人会收到接受邀请的通知。

    参数说明

    Android
    javavoid acceptInvite(V2NIMSignallingAcceptInviteParams params, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingAcceptInviteParams - 接受邀请的配置参数。
    success V2NIMSuccessCallback - 接受成功回调。
    failure V2NIMFailureCallback - 接受失败回调,返回 错误码
    iOS
    objective-c- (void)acceptInvite:(V2NIMSignallingAcceptInviteParams*)param
                 success:(V2NIMSuccessCallback)success
                 failure:(V2NIMFailureCallback)failure;
    
    参数名称 类型 是否必填 默认值 描述
    param V2NIMSignallingAcceptInviteParams - 接受邀请的配置参数。
    success V2NIMSuccessCallback - 接受成功回调。
    failure V2NIMFailureCallback - 接受失败回调,返回 错误码
    Windows/macOS
    cppvirtual void v2::V2NIMSignallingService::acceptInvite	(	const V2NIMSignallingAcceptInviteParams & 	params,
                                                            const V2NIMSuccessCallback< void > & 	success,
                                                            const V2NIMFailureCallback & 	failure )	
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingAcceptInviteParams - 接受邀请的配置参数。
    success V2NIMSuccessCallback - 接受成功回调。
    failure V2NIMFailureCallback - 接受失败回调,返回 错误码
    Web/uni-app/小程序
    typescriptacceptInvite(params: V2NIMSignallingAcceptInviteParams): Promise<void>
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingAcceptInviteParams - 接受邀请的配置参数。
    HarmonyOS
    typescriptacceptInvite(params: V2NIMSignallingAcceptInviteParams): Promise<void>
    
    参数名称 类型 是否必填 默认值 描述
    params V2NIMSignallingAcceptInviteParams - 接受邀请的配置参数。

    示例代码

    Android
    javaString channelId = "channelId";
    //被邀请者账号ID
    String inviterAccountId = "inviterAccountId";
    //请求ID
    String requestId = "123456";
    //服务端扩展字段
    String serverExtension = "serverExtension";
    //是否需要存离线消息。如果存离线,则用户离线再上线会收到该通知
    boolean offlineEnabled = true;
    
    V2NIMSignallingAcceptInviteParams params = new V2NIMSignallingAcceptInviteParams.Builder(channelId, inviterAccountId, requestId)
        .serverExtension(serverExtension)
        .offlineEnabled(offlineEnabled)
        .build();
    NIMClient.getService(V2NIMSignallingService.class).acceptInvite(params, new V2NIMSuccessCallback<Void>() {
        @Override
        public void onSuccess(Void unused) {
    
        }
    }, new V2NIMFailureCallback() {
        @Override
        public void onFailure(V2NIMError error) {
    
        }
    });
    
    iOS
    objective-cV2NIMSignallingAcceptInviteParams* param = [[V2NIMSignallingAcceptInviteParams alloc] init];
    param.channelId = @"Channel ID";
    // 邀请者账号ID,不能填自己的账号ID
    param.inviterAccountId = @"Account ID";
    param.requestId = @"Request ID";
    param.serverExtension = @"{\"key\": \"value\"}";
    param.offlineEnabled = YES;
    
    
    [[NIMSDK sharedSDK].v2SignallingService acceptInvite:param success:^() {
        // Your Code
    } failure:^(V2NIMError *error) {
        // Your Code
    }];
    
    Windows/macOS
    cppV2NIMSignallingAcceptInviteParams acceptInviteParameter;
    acceptInviteParameter.channelId = "channelId";
    acceptInviteParameter.accountId = "accountId";
    acceptInviteParameter.requestId = "request UUID";
    signallingService.acceptInvite(
        acceptInviteParameter,
        []() {
            // accept invite success
        },
        [](V2NIMError error) {
            // accept invite failed, handle error
        });
    
    Web/uni-app/小程序
    typescriptconst params: V2NIMSignallingAcceptInviteParams = {
      channelId: this.channelId,
      inviterAccountId: this.inviterAccountId,
      requestId: this.requestId,
      serverExtension: this.serverExtension,
      offlineEnabled: this.offlineEnabled
    }
    
    await nimsdk.signallingService.acceptInvite(params)
    
    HarmonyOS
    typescriptconst params: V2NIMSignallingAcceptInviteParams = {
      channelId: this.channelId,
      inviterAccountId: this.inviterAccountId,
      requestId: this.requestId,
      serverExtension: this.serverExtension,
      offlineEnabled: this.offlineEnabled
    }
    
    await nimsdk.signallingService.acceptInvite(params)
    

    返回值

    Android/iOS/Windows/macOS

    无返回值

    Web/uni-app/小程序/HarmonyOS

    Promise<void>

    相关回调

    Android/iOS/Windows/macOS
    • 请求成功,返回 V2NIMSuccessCallback 回调。
    • 请求失败,返回 V2NIMFailuerCallback 回调,包含信令相关错误码。
    Web/uni-app/小程序/HarmonyOS

    sendControl

    接口描述

    发送自定义控制信令,用于实现自定义相关的业务逻辑。

    发送时可以指定接收用户,如果不指定,则默认发送给频道房间内的所有人。发送成功后,服务器会给在线的接收者发送一个控制通知。

    非房间内的用户也可以调用该接口,但是接收者必须在频道房间内,或者接收者是频道房间创建者。

    参数说明

    Android
    javavoid sendControl(String channelId, String receiverAccountId, String serverExtension, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
    
    参数名称 类型 是否必填 默认值 描述
    channelId String - 频道 ID,房间的唯一标识。
    receiverAccountId String 默认发送给房间内的所有人 接收者账号 ID。
    serverExtension String - 服务端扩展字段,可通过该字段自定义控制数据,JSON 格式,长度最大为 4096 字符。
    success V2NIMSuccessCallback - 发送成功回调。
    failure V2NIMFailureCallback - 发送失败回调,返回 错误码
    iOS
    objective-c- (void)sendControl:(NSString *)channelId
      receiverAccountId:(nullable NSString *)receiverAccountId
        serverExtension:(nullable NSString *)serverExtension
                success:(V2NIMSuccessCallback)success
                failure:(V2NIMFailureCallback)failure;
    
    参数名称 类型 是否必填 默认值 描述
    channelId NSString - 频道 ID,房间的唯一标识。
    receiverAccountId NSString 默认发送给房间内的所有人 接收者账号 ID。
    serverExtension NSString - 服务端扩展字段,可通过该字段自定义控制数据,JSON 格式,长度最大为 4096 字符。
    success V2NIMSuccessCallback - 发送成功回调。
    failure V2NIMFailureCallback - 发送失败回调,返回 错误码
    Windows/macOS
    cppvirtual void v2::V2NIMSignallingService::sendControl	(	const nstd::string & 	channelId,
                                                            const nstd::optional< nstd::string > & 	receiverAccountId,
                                                            const nstd::optional< nstd::string > & 	serverExtension,
                                                            const V2NIMSuccessCallback< void > & 	success,
                                                            const V2NIMFailureCallback & 	failure )	
    
    参数名称 类型 是否必填 默认值 描述
    channelId nstd::string - 频道 ID,房间的唯一标识。
    receiverAccountId nstd::string 默认发送给房间内的所有人 接收者账号 ID。
    serverExtension nstd::string - 服务端扩展字段,可通过该字段自定义控制数据,JSON 格式,长度最大为 4096 字符。
    success V2NIMSuccessCallback - 发送成功回调。
    failure V2NIMFailureCallback - 发送失败回调,返回 错误码
    Web/uni-app/小程序
    typescriptsendControl(channelId: string, receiverAccountId?: string, serverExtension?: string): Promise<void>
    
    参数名称 类型 是否必填 默认值 描述
    channelId string - 频道 ID,房间的唯一标识。
    receiverAccountId string 默认发送给房间内的所有人 接收者账号 ID。
    serverExtension string - 服务端扩展字段,可通过该字段自定义控制数据,JSON 格式,长度最大为 4096 字符。
    HarmonyOS
    typescriptsendControl(channelId: string, receiverAccountId?: string, serverExtension?: string): Promise<void>
    
    参数名称 类型 是否必填 默认值 描述
    channelId string - 频道 ID,房间的唯一标识。
    receiverAccountId string 默认发送给房间内的所有人 接收者账号 ID。
    serverExtension string - 服务端扩展字段,可通过该字段自定义控制数据,JSON 格式,长度最大为 4096 字符。

    示例代码

    Android
    java//发送控制消息
    String channelId = "channelId";
    //接受者账号ID
    String receiverAccountId = "receiverAccountId";
    //服务端扩展字段
    String serverExtension = "serverExtension";
    
    NIMClient.getService(V2NIMSignallingService.class).sendControl(channelId, receiverAccountId, serverExtension, new V2NIMSuccessCallback<Void>() {
        @Override
        public void onSuccess(Void unused) {
    
        }
    }, new V2NIMFailureCallback() {
        @Override
        public void onFailure(V2NIMError error) {
    
        }
    });
    
    iOS
    objective-cNSString *channelId = @"Channel ID";
    NSString *receiverAccountId = @"Account ID";
    NSString *serverExtension = @"{\"key\": \"value\"}";
    [[NIMSDK sharedSDK].v2SignallingService sendControl:channelId receiverAccountId:receiverAccountId serverExtension:serverExtension  success:^() {
        // Your Code
    } failure:^(V2NIMError *error) {
        // Your Code
    }];
    
    Windows/macOS
    cppsignallingService.sendControl(
        "channelId",
        "receiverAccountId",
        "{\"key\":\"value\"}",
        []() {
            // send control success
        },
        [](V2NIMError error) {
            // send control failed, handle error
        });
    
    Web/uni-app/小程序
    typescriptawait nimsdk.signallingService.sendControl(this.channelId, this.receiverAccountId, this.serverExtension)
    
    HarmonyOS
    typescriptawait nimsdk.signallingService.sendControl(this.channelId, this.receiverAccountId, this.serverExtension)
    

    返回值

    Android/iOS/Windows/macOS

    无返回值

    Web/uni-app/小程序/HarmonyOS

    Promise<void>

    相关回调

    Android/iOS/Windows/macOS
    • 请求成功,返回 V2NIMSuccessCallback 回调。
    • 请求失败,返回 V2NIMFailuerCallback 回调,包含信令相关错误码。
    Web/uni-app/小程序/HarmonyOS

    getRoomInfoByChannelName

    接口描述

    根据频道名称查询频道房间信息。

    参数说明

    Android
    javavoid getRoomInfoByChannelName(String channelName, V2NIMSuccessCallback<V2NIMSignallingRoomInfo> success, V2NIMFailureCallback failure);
    
    参数名称 类型 是否必填 默认值 描述
    channelName String - 频道名称,在服务器中具有唯一性。
    success V2NIMSuccessCallback<V2NIMSignallingRoomInfo> - 查询成功回调,返回 V2NIMSignallingRoomInfo
    failure V2NIMFailureCallback - 查询失败回调,返回 错误码
    iOS
    objective-c- (void)getRoomInfoByChannelName:(NSString *)channelName
                             success:(V2NIMSignallingGetRoomInfoByChannelNameSuccess)success
                             failure:(V2NIMFailureCallback)failure;
    
    参数名称 类型 是否必填 默认值 描述
    channelName NSString - 频道名称,在服务器中具有唯一性。
    success V2NIMSignallingGetRoomInfoByChannelNameSuccess - 查询成功回调,可自定义。
    failure V2NIMFailureCallback - 查询失败回调,返回 错误码
    Windows/macOS
    cppvirtual void v2::V2NIMSignallingService::getRoomInfoByChannelName	(	const nstd::string & 	channelName,
                                                                        const V2NIMSuccessCallback< const V2NIMSignallingRoomInfo & > & 	success,
                                                                        const V2NIMFailureCallback & 	failure )	
    
    参数名称 类型 是否必填 默认值 描述
    channelName nstd::string - 频道名称,在服务器中具有唯一性。
    success V2NIMSuccessCallback<const V2NIMSignallingRoomInfo &> - 查询成功回调,返回 V2NIMSignallingRoomInfo
    failure V2NIMFailureCallback - 查询失败回调,返回 错误码
    Web/uni-app/小程序
    typescriptgetRoomInfoByChannelName(channelName: string): Promise<V2NIMSignallingRoomInfo>
    
    参数名称 类型 是否必填 默认值 描述
    channelName string - 频道名称,在服务器中具有唯一性。
    HarmonyOS
    typescriptgetRoomInfoByChannelName(channelName: string): Promise<V2NIMSignallingRoomInfo>
    
    参数名称 类型 是否必填 默认值 描述
    channelName string - 频道名称,在服务器中具有唯一性。

    示例代码

    Android
    javaNIMClient.getService(V2NIMSignallingService.class).getRoomInfoByChannelName("channelName", new V2NIMSuccessCallback<V2NIMSignallingRoomInfo>() {
        @Override
        public void onSuccess(V2NIMSignallingRoomInfo v2NIMSignallingRoomInfo) {
            //get room info success
        }
    }, new V2NIMFailureCallback() {
        @Override
        public void onFailure(V2NIMError error) {
            //get room info failure
        }
    });
    
    iOS
    objective-cNSString * channelName = @"Channel Name";
    [[NIMSDK sharedSDK].v2SignallingService getRoomInfoByChannelName:channelName success:^(V2NIMSignallingRoomInfo *result) {
        // Your Code
    } failure:^(V2NIMError *error) {
        // Your Code
    }];
    
    Windows/macOS
    cppsignallingService.getRoomInfoByChannelName(
        "channelName",
        [](const V2NIMSignallingRoomInfo& result) {
            // get room info success
        },
        [](V2NIMError error) {
            // get room info failed, handle error
        });
    
    Web/uni-app/小程序
    typescriptconst result = await nim.V2NIMSignallingService.getRoomInfoByChannelName("YOUR_CHANNEL_NAME")
    
    HarmonyOS
    typescriptconst result:V2NIMSignallingRoomResult = await nimsdk.signallingService.getRoomInfoByChannelName(this.channelName)
    

    返回值

    Android/iOS/Windows/macOS

    无返回值

    Web/uni-app/小程序/HarmonyOS

    相关回调

    Android/Windows/macOS
    • 请求成功,返回 V2NIMSuccessCallback 回调,包含 V2NIMSignallingRoomInfo
    • 请求失败,返回 V2NIMFailuerCallback 回调,包含信令相关错误码。
    iOS
    • 请求成功,返回 V2NIMSignallingGetRoomInfoByChannelNameSuccess 回调,可自定义。
    • 请求失败,返回 V2NIMFailuerCallback 回调,包含信令相关错误码。
    Web/uni-app/小程序/HarmonyOS

    类/枚举

    以下介绍信令相关的类和枚举信息。

    V2NIMSignallingCallParams

    直接呼叫的配置参数。

    Android
    javapublic class V2NIMSignallingCallParams {
      private static final String TAG = "V2NIMSignallingCallParams";
      private final String calleeAccountId;
      private final String requestId;
      private final V2NIMSignallingChannelType channelType;
      private String channelName;
      private String channelExtension;
      private String serverExtension;
      private V2NIMSignallingConfig signallingConfig;
      private V2NIMSignallingPushConfig pushConfig;
      private V2NIMSignallingRtcConfig rtcConfig;
      private V2NIMSignallingCallParams() {
       this(null, null, null);
      }
      public V2NIMSignallingCallParams(String calleeAccountId, String requestId, V2NIMSignallingChannelType channelType) {
       this.calleeAccountId = calleeAccountId;
       this.requestId = requestId;
       this.channelType = channelType;
      }
      public String getCalleeAccountId() {
       return calleeAccountId;
      }
      public String getRequestId() {
       return requestId;
      }
      public V2NIMSignallingChannelType getChannelType() {
       return channelType;
      }
      public String getChannelName() {
       return channelName;
      }
      public void setChannelName(String channelName) {
       this.channelName = channelName;
      }
      public String getChannelExtension() {
       return channelExtension;
      }
      public void setChannelExtension(String channelExtension) {
       this.channelExtension = channelExtension;
      }
      public String getServerExtension() {
       return serverExtension;
      }
      public void setServerExtension(String serverExtension) {
       this.serverExtension = serverExtension;
      }
      public V2NIMSignallingConfig getSignallingConfig() {
       return signallingConfig;
      }
      public void setSignallingConfig(V2NIMSignallingConfig signallingConfig) {
       this.signallingConfig = signallingConfig;
      }
      public V2NIMSignallingPushConfig getPushConfig() {
       return pushConfig;
      }
      public void setPushConfig(V2NIMSignallingPushConfig pushConfig) {
       this.pushConfig = pushConfig;
      }
      public V2NIMSignallingRtcConfig getRtcConfig() {
       return rtcConfig;
      }
      public void setRtcConfig(V2NIMSignallingRtcConfig rtcConfig) {
       this.rtcConfig = rtcConfig;
      }
      public boolean isValid() {
       if(TextUtils.isEmpty(calleeAccountId)){
        NimLog.e(TAG, "calleeAccountId is empty");
        return false;
       }
       if(calleeAccountId.equals(SDKCacheUI.getAccount())){
        NimLog.e(TAG, "calleeAccountId is self");
        return false;
       }
       if(TextUtils.isEmpty(requestId)){
        NimLog.e(TAG, "requestId is empty");
        return false;
       }
       if(channelType == null){
        NimLog.e(TAG, "channelType is null");
        return false;
       }
       return true;
      }
    
      public static class Builder {
    
       private final V2NIMSignallingCallParams params;
       public Builder(String calleeAccountId, String requestId, V2NIMSignallingChannelType channelType) {
        params = new V2NIMSignallingCallParams(calleeAccountId, requestId, channelType);
       }
    
       public Builder channelName(String channelName) {
        params.setChannelName(channelName);
        return this;
       }
    
       public Builder channelExtension(String channelExtension) {
        params.setChannelExtension(channelExtension);
        return this;
       }
    
       public Builder serverExtension(String serverExtension) {
        params.setServerExtension(serverExtension);
        return this;
       }
    
       public Builder signallingConfig(V2NIMSignallingConfig signallingConfig) {
        params.setSignallingConfig(signallingConfig);
        return this;
       }
    
       public Builder pushConfig(V2NIMSignallingPushConfig pushConfig) {
        params.setPushConfig(pushConfig);
        return this;
       }
    
       public Builder rtcConfig(V2NIMSignallingRtcConfig rtcConfig) {
        params.setRtcConfig(rtcConfig);
        return this;
       }
    
       public V2NIMSignallingCallParams build() {
        return params;
       }
      }
    }
    
    iOS
    objective-c@interface V2NIMSignallingCallParams : NSObject
    @property (nonatomic,copy) NSString *calleeAccountId;
    @property (nonatomic,copy) NSString *requestId;
    @property (nonatomic,assign) V2NIMSignallingChannelType channelType;
    @property (nonatomic,copy,nullable) NSString *channelName;
    @property (nonatomic,copy,nullable) NSString *channelExtension;
    @property (nonatomic,copy,nullable) NSString *serverExtension;
    @property (nonatomic,strong,nullable) V2NIMSignallingConfig *signallingConfig;
    @property (nonatomic,strong,nullable) V2NIMSignallingPushConfig *pushConfig;
    @property (nonatomic,strong,nullable) V2NIMSignallingRtcConfig *rtcConfig;
    @end
    
    Windows/macOS
    cppstruct V2NIMSignallingCallParams {
        nstd::string calleeAccountId;
        nstd::string requestId;
        V2NIMSignallingChannelType channelType{V2NIM_SIGNALLING_CHANNEL_TYPE_UNKNOWN};
        nstd::optional<nstd::string> channelName;
        nstd::optional<nstd::string> channelExtension;
        nstd::optional<nstd::string> serverExtension;
        nstd::optional<V2NIMSignallingConfig> signallingConfig;
        nstd::optional<V2NIMSignallingPushConfig> pushConfig;
        nstd::optional<V2NIMSignallingRtcConfig> rtcConfig;
    };
    
    Web/uni-app/小程序
    typescriptexport type V2NIMSignallingCallParams = {
      calleeAccountId: string
      requestId: string
      channelType: V2NIMSignallingChannelType
      channelName?: string
      channelExtension?: string
      serverExtension?: string
      signallingConfig?: V2NIMSignallingConfig
      pushConfig?: V2NIMSignallingPushConfig
      rtcConfig?: V2NIMSignallingRtcConfig
    }
    
    HarmonyOS
    typescriptexport interface V2NIMSignallingCallParams {
      calleeAccountId: string
      requestId: string
      channelType: V2NIMSignallingChannelType
      channelName?: string
      channelExtension?: string
      serverExtension?: string
      signallingConfig?: V2NIMSignallingConfig
      pushConfig?: V2NIMSignallingPushConfig
      rtcConfig?: V2NIMSignallingRtcConfig
    }
    

    成员参数

    名称 类型 是否必填 默认值 描述
    calleeAccountId string - 被呼叫者的用户账号 ID,为空或为空字符串则返回参数错误。
    requestId string - 请求 ID,请求的唯一标识,即相同的 RequestId 表示同一个请求。随机数,最大长度 128 位字符,可通过 UUID 实现。
  • 请求 ID 主要为了便于业务实现请求响应绑定。
  • 传入为空或为空字符串则返回参数错误。
  • channelType V2NIMSignallingChannelType - 频道类型。可选择音频、视频或自定义频道。
    房间创建后与频道类型绑定。
    channelName string - 频道名称。
    建议使用与业务有相关场景的名称,便于页面显示。
    channelExtension string - 频道相关扩展字段,JSON 格式,长度最大为 4096 字符。
    serverExtension string - 服务端扩展字段,JSON 格式,长度最大为 4096 字符。
    signallingConfig V2NIMSignallingConfig - 信令相关配置项。
    pushConfig V2NIMSignallingPushConfig - 推送相关配置项。
    rtcConfig V2NIMSignallingRtcConfig - 音视频相关配置项。

    V2NIMSignallingConfig

    信令相关配置参数。

    Android
    javapublic class V2NIMSignallingConfig {
      private boolean offlineEnabled = true;
      private boolean unreadEnabled  = true;
      private Long    selfUid;
      public V2NIMSignallingConfig() {
      }
      public V2NIMSignallingConfig(boolean offlineEnabled, boolean unreadEnabled, long selfUid) {
       this.offlineEnabled = offlineEnabled;
       this.unreadEnabled = unreadEnabled;
       this.selfUid = selfUid;
      }
      public boolean isOfflineEnabled() {
       return offlineEnabled;
      }
      public void setOfflineEnabled(boolean offlineEnabled) {
       this.offlineEnabled = offlineEnabled;
      }
      public boolean isUnreadEnabled() {
       return unreadEnabled;
      }
      public void setUnreadEnabled(boolean unreadEnabled) {
       this.unreadEnabled = unreadEnabled;
      }
      public Long getSelfUid() {
       return selfUid;
      }
      public void setSelfUid(Long selfUid) {
       this.selfUid = selfUid;
      }
    
      @NonNull
      @Override
      public String toString() {
       final StringBuilder sb = new StringBuilder("V2NIMSignallingConfig{");
       sb.append("offlineEnabled=").append(offlineEnabled);
       sb.append(", unreadEnabled=").append(unreadEnabled);
       sb.append(", selfUid=").append(selfUid);
       sb.append('}');
       return sb.toString();
      }
    }
    
    iOS
    objective-c@interface V2NIMSignallingConfig : NSObject
    @property (nonatomic,assign) BOOL offlineEnabled;
    @property (nonatomic,assign) BOOL unreadEnabled;
    @property (nonatomic,assign) NSInteger selfUid;
    @end
    
    Windows/macOS
    cppstruct V2NIMSignallingConfig {
        nstd::optional<bool> offlineEnabled;
        nstd::optional<bool> unreadEnabled;
        nstd::optional<int64_t> selfUid;
    };
    
    Web/uni-app/小程序
    typescriptexport type V2NIMSignallingConfig = {
      offlineEnabled?: boolean
      unreadEnabled?: boolean
      selfUid?: number
    }
    
    HarmonyOS
    typescriptexport interface V2NIMSignallingConfig{
      offlineEnabled?: boolean
      unreadEnabled?: boolean
      selfUid?: number
    }
    

    成员参数

    名称 类型 是否必填 默认值 描述
    offlineEnabled boolean true 是否需要存离线消息。默认为 true,即存离线,当用户离线状态下再次上线会收到通知消息。
    unreadEnabled boolean true 是否需要计未读数。默认为 true,需要。
    selfUid long - 用户 uid(音视频的用户账号 ID)。

    V2NIMSignallingPushConfig

    推送相关配置参数。

    Android
    javapublic class V2NIMSignallingPushConfig {
      private boolean pushEnabled = true;
      private String pushTitle;
      private String pushContent;
      private String pushPayload;
    
      public V2NIMSignallingPushConfig() {
      }
    
      public V2NIMSignallingPushConfig(boolean pushEnabled, String pushTitle, String pushContent, String pushPayload) {
       this.pushEnabled = pushEnabled;
       this.pushTitle = pushTitle;
       this.pushContent = pushContent;
       this.pushPayload = pushPayload;
      }
    
      public boolean isPushEnabled() {
       return pushEnabled;
      }
    
      public void setPushEnabled(boolean pushEnabled) {
       this.pushEnabled = pushEnabled;
      }
    
      public String getPushTitle() {
       return pushTitle;
      }
    
      public void setPushTitle(String pushTitle) {
       this.pushTitle = pushTitle;
      }
    
      public String getPushContent() {
       return pushContent;
      }
    
      public void setPushContent(String pushContent) {
       this.pushContent = pushContent;
      }
    
      public String getPushPayload() {
       return pushPayload;
      }
    
      public void setPushPayload(String pushPayload) {
       this.pushPayload = pushPayload;
      }
    
      @NonNull
      @Override
      public String toString() {
       if(NimLog.isDebuggable()){
        final StringBuilder sb = new StringBuilder("V2NIMSignallingPushConfig{");
        sb.append("pushEnabled=").append(pushEnabled);
        sb.append(", pushTitle='").append(pushTitle).append('\'');
        sb.append(", pushContent='").append(pushContent).append('\'');
        sb.append(", pushPayload='").append(pushPayload).append('\'');
        sb.append('}');
        return sb.toString();
       }else{
        return super.toString();
       }
      }
    }
    
    iOS
    objective-c@interface V2NIMSignallingPushConfig : NSObject
    @property (nonatomic,assign) BOOL pushEnabled;
    @property (nonatomic,copy,nullable) NSString *pushTitle;
    @property (nonatomic,copy,nullable) NSString *pushContent;
    @property (nonatomic,copy,nullable) NSString *pushPayload;
    @end
    
    Windows/macOS
    cppstruct V2NIMSignallingPushConfig {
        bool pushEnabled{false};
        nstd::optional<nstd::string> pushTitle;
        nstd::optional<nstd::string> pushContent;
        nstd::optional<nstd::string> pushPayload;
    };
    
    Web/uni-app/小程序
    typescriptexport type V2NIMSignallingPushConfig = {
      pushEnabled?: boolean
      pushTitle?: string
      pushContent?: string
      pushPayload?: string
    }
    
    HarmonyOS
    typescriptexport interface V2NIMSignallingPushConfig{
      pushEnabled?: boolean
      pushTitle?: string
      pushContent?: string
      pushPayload?: string
    }
    

    成员参数

    名称 类型 是否必填 默认值 描述
    pushEnabled boolean true 是否需要推送。默认为 true,需要。
    pushTitle string - 推送标题。pushEnabled 为 true 时,该字段必填。
    pushContent string - 推送文案。pushEnabled 为 true 时,该字段必填。
    pushPayload string - 推送数据。pushEnabled 为 true 时,该字段必填。

    V2NIMSignallingRtcConfig

    音视频相关配置参数。

    Android
    javapublic class V2NIMSignallingRtcConfig {
    
      private String rtcChannelName;
      private Long rtcTokenTtl;
      private String rtcParams;
    
      public V2NIMSignallingRtcConfig() {
      }
    
      public V2NIMSignallingRtcConfig(String rtcChannelName, Long rtcTokenTtl, String rtcParams) {
       this.rtcChannelName = rtcChannelName;
       this.rtcTokenTtl = rtcTokenTtl;
       this.rtcParams = rtcParams;
      }
    
      public String getRtcChannelName() {
       return rtcChannelName;
      }
    
      public void setRtcChannelName(String rtcChannelName) {
       this.rtcChannelName = rtcChannelName;
      }
    
      public Long getRtcTokenTtl() {
       return rtcTokenTtl;
      }
    
      public void setRtcTokenTtl(Long rtcTokenTtl) {
       this.rtcTokenTtl = rtcTokenTtl;
      }
    
      public String getRtcParams() {
       return rtcParams;
      }
    
      public void setRtcParams(String rtcParams) {
       this.rtcParams = rtcParams;
      }
    
      @NonNull
      @Override
      public String toString() {
       final StringBuilder sb = new StringBuilder("V2NIMSignallingRtcConfig{");
       if (NimLog.isDebuggable()){
        sb.append("rtcChannelName='").append(rtcChannelName).append('\'');
        sb.append(", rtcTokenTtl=").append(rtcTokenTtl);
        sb.append(", rtcParams='").append(rtcParams).append('\'');
       }else{
        sb.append("rtcChannelName='").append(rtcChannelName).append('\'');
        sb.append(", rtcTokenTtl=").append(rtcTokenTtl);
       }
       sb.append('}');
       return sb.toString();
      }
    }
    
    iOS
    objective-c@interface V2NIMSignallingRtcConfig : NSObject
    @property (nonatomic,copy,nullable) NSString *rtcChannelName;
    @property (nonatomic,assign) long rtcTokenTtl;
    @property (nonatomic,copy,nullable) NSString *rtcParams;
    @end
    
    Windows/macOS
    cppstruct V2NIMSignallingRtcConfig {
        nstd::optional<nstd::string> rtcChannelName;
        nstd::optional<uint32_t> rtcTokenTtl;
        nstd::optional<nstd::string> rtcParams;
    };
    
    Web/uni-app/小程序
    typescriptexport type V2NIMSignallingRtcConfig = {
      rtcChannelName?: string
      rtcTokenTtl?: number
      rtcParams?: string
    }
    
    HarmonyOS
    typescriptexport interface V2NIMSignallingRtcConfig {
      rtcChannelName?: string
      rtcTokenTtl?: number
      rtcParams?: string
    }
    

    成员参数

    名称 类型 是否必填 默认值 描述
    rtcChannelName string - 云信音视频房间频道的名称。与信令的房间频道名称是两个不同的概念。
    rtcTokenTtl long 10*60(十分钟) 音视频房间 token 的过期时间,单位为 s(秒)。
    rtcParams string - 音视频 SDK 相关参数,JSON 格式。。IM 信令仅透传相关参数。

    V2NIMSignallingCallResult

    呼叫回包,即调用呼叫接口成功的返回结果。

    Android
    javapublic interface V2NIMSignallingCallResult {
    
      V2NIMSignallingRoomInfo getRoomInfo();
      V2NIMSignallingRtcInfo getRtcInfo();
      int getCallStatus();
    }
    
    iOS
    objective-c@interface V2NIMSignallingCallResult : NSObject
    @property (nonatomic,strong,readonly) V2NIMSignallingRoomInfo *roomInfo;
    @property (nonatomic,strong,nullable,readonly) V2NIMSignallingRtcInfo *rtcInfo;
    @property (nonatomic,assign,readonly) int callStatus;
    @end
    
    Windows/macOS
    cppstruct V2NIMSignallingCallResult {
        V2NIMSignallingRoomInfo roomInfo;
        nstd::optional<V2NIMSignallingRtcInfo> rtcInfo;
        int32_t callStatus{0};
    };
    
    Web/uni-app/小程序
    typescriptexport type V2NIMSignallingCallResult = {
    
      roomInfo: V2NIMSignallingRoomInfo
      rtcInfo?: V2NIMSignallingRtcInfo
      callStatus?: number
    }
    
    HarmonyOS
    typescriptexport interface V2NIMSignallingCallResult {
    
      roomInfo: V2NIMSignallingRoomInfo
      rtcInfo?: V2NIMSignallingRtcInfo
      callStatus?: number
    }
    

    成员参数

    名称 类型 是否必返回 是否只读 描述
    roomInfo V2NIMSignallingRoomInfo 频道房间的相关信息。
    rtcInfo V2NIMSignallingRtcInfo 音视频房间的相关信息。
    callStatus number 呼叫状态。
  • 200:呼叫成功。
  • 118308:信令成员不在线, 但推送可达。
  • 118309:信令成员不在线, 且推送不可达。
  • V2NIMSignallingChannelInfo

    信令频道信息。

    Android
    javapublic interface V2NIMSignallingChannelInfo {
    
      String getChannelName();
      String getChannelId();
      V2NIMSignallingChannelType getChannelType();
      String getChannelExtension();
      long getCreateTime();
      long getExpireTime();
      String getCreatorAccountId();
    }
    
    iOS
    objective-c@interface V2NIMSignallingChannelInfo : NSObject
    @property (nonatomic, copy, nullable, readonly) NSString *channelName;
    @property (nonatomic, copy, readonly) NSString *channelId;
    @property (nonatomic, assign, readonly) V2NIMSignallingChannelType channelType;
    @property (nonatomic, copy, nullable) NSString *channelExtension;
    @property (nonatomic, assign) NSTimeInterval createTime;
    @property (nonatomic, assign) NSTimeInterval expireTime;
    @property (nonatomic, copy) NSString *creatorAccountId;
    @end
    
    Windows/macOS
    cppstruct V2NIMSignallingChannelInfo {
        nstd::string channelId;
        V2NIMSignallingChannelType channelType;
        nstd::optional<nstd::string> channelName;
        nstd::optional<nstd::string> channelExtension;
        time_t createTime{0};
        time_t expireTime{0};
        nstd::string creatorAccountId;
    };
    
    Web/uni-app/小程序
    typescriptexport type V2NIMSignallingChannelInfo = {
    
      channelName?: string
      channelId: string
      channelType: V2NIMSignallingChannelType
      channelExtension?: string
      createTime: number
      expireTime: number
      creatorAccountId: string
    }
    
    HarmonyOS
    typescriptexport interface V2NIMSignallingChannelInfo {
    
      channelName?: string
      channelId: string
      channelType: V2NIMSignallingChannelType
      channelExtension?: string
      createTime: number
      expireTime: number
      creatorAccountId: string
    }
    

    成员参数

    名称 类型 是否必返回 是否只读 描述
    channelName string 信令频道名称。
    如果请求时未传入,则该字段为空。
    channelId string 信令频道 ID,频道房间的唯一标识。
    channelType V2NIMSignallingChannelType 频道类型,房间创建后与频道类型绑定。
    channelExtension string - 频道相关扩展字段,JSON 格式,长度最大为 4096 字符。
    creatorAccountId string - 创建者的用户账号 ID。
    createTime long - 频道房间的创建时间。
    expireTime long - 频道房间的过期时间。

    V2NIMSignallingRtcInfo

    音视频相关信息。

    • 如果请求时传入了音视频房间频道信息(V2NIMSignallingRtcConfig.rtcChannelName),则服务器会同时返回进入音视频房间的 Token 信息。
    • 如果未传入,则不返回。
    Android
    javapublic interface V2NIMSignallingRtcInfo {
    
      String getRtcToken();
      Long getRtcTokenTtl();
      String getRtcParams();
    }
    
    iOS
    objective-c@interface V2NIMSignallingRtcInfo : NSObject
    
    @property (nonatomic, copy, nullable) NSString *rtcToken;
    @property (nonatomic, assign) long rtcTokenTtl;
    @property (nonatomic, copy, nullable) NSString *rtcParams;
    @end
    
    Windows/macOS
    cppstruct V2NIMSignallingRtcInfo {
        nstd::optional<nstd::string> rtcToken;
        nstd::optional<uint32_t> rtcTokenTtl;
        nstd::optional<nstd::string> rtcParams;
    };
    
    Web/uni-app/小程序
    typescriptexport type V2NIMSignallingRtcInfo = {
    
      rtcToken?: string
      rtcTokenTtl?: number
      rtcParams?: string
    }
    
    HarmonyOS
    typescriptexport interface V2NIMSignallingRtcInfo {
    
      rtcToken?: string
      rtcTokenTtl?: number
      rtcParams?: string,
    }
    

    成员参数

    名称 类型 是否必返回 描述
    rtcToken string 进入音视频房间对应的 Token。
    rtcTokenTtl number 音视频房间 Token 的过期时间。
    rtcParams string 频道类型,房间创建后与频道类型绑定。
    channelExtension string 音视频 SDK 相关参数, IM 信令仅透传相关参数。

    V2NIMSignallingCallSetupParams

    呼叫建立的配置参数。包含接收方接入的信令频道房间信息和音视频房间相关信息。

    Android
    javapublic class V2NIMSignallingCallSetupParams {
      private static final String TAG = "V2NIMSignallingCallSetupParams";
      private final String channelId;
      private final String callerAccountId;
      private final String requestId;
      private String serverExtension;
      private V2NIMSignallingConfig signallingConfig;
      private V2NIMSignallingRtcConfig rtcConfig;
    
      private V2NIMSignallingCallSetupParams() {
       this(null, null, null);
      }
    
      public V2NIMSignallingCallSetupParams(String channelId, String callerAccountId, String requestId) {
       this.channelId = channelId;
       this.callerAccountId = callerAccountId;
       this.requestId = requestId;
      }
    
      public String getChannelId() {
       return channelId;
      }
    
      public String getCallerAccountId() {
       return callerAccountId;
      }
    
      public String getRequestId() {
       return requestId;
      }
    
      public String getServerExtension() {
       return serverExtension;
      }
    
      public void setServerExtension(String serverExtension) {
       this.serverExtension = serverExtension;
      }
    
      public V2NIMSignallingConfig getSignallingConfig() {
       return signallingConfig;
      }
    
      public void setSignallingConfig(V2NIMSignallingConfig signallingConfig) {
       this.signallingConfig = signallingConfig;
      }
    
      public V2NIMSignallingRtcConfig getRtcConfig() {
       return rtcConfig;
      }
    
      public void setRtcConfig(V2NIMSignallingRtcConfig rtcConfig) {
       this.rtcConfig = rtcConfig;
      }
    
      public boolean isValid() {
       if (TextUtils.isEmpty(channelId)){
        NimLog.e(TAG, "channelId is empty");
        return false;
       }
       if (TextUtils.isEmpty(callerAccountId)){
        NimLog.e(TAG, "callerAccountId is empty");
        return false;
       }
       if(callerAccountId.equals(SDKCacheUI.getAccount())){
        NimLog.e(TAG, "callerAccountId is equal to self account");
        return false;
       }
       if (TextUtils.isEmpty(requestId)){
        NimLog.e(TAG, "requestId is empty");
        return false;
       }
       return true;
      }
    
      public static class Builder {
    
       private final String channelId;
       private final String callerAccountId;
       private final String requestId;
       private String serverExtension;
       private V2NIMSignallingConfig signallingConfig;
       private V2NIMSignallingRtcConfig rtcConfig;
    
       public Builder(String channelId, String callerAccountId, String requestId) {
        this.channelId = channelId;
        this.callerAccountId = callerAccountId;
        this.requestId = requestId;
       }
    
       public Builder serverExtension(String serverExtension) {
        this.serverExtension = serverExtension;
        return this;
       }
    
       public Builder signallingConfig(V2NIMSignallingConfig signallingConfig) {
        this.signallingConfig = signallingConfig;
        return this;
       }
    
       public Builder rtcConfig(V2NIMSignallingRtcConfig rtcConfig) {
        this.rtcConfig = rtcConfig;
        return this;
       }
    
       public V2NIMSignallingCallSetupParams build() {
        V2NIMSignallingCallSetupParams params = new V2NIMSignallingCallSetupParams(channelId, callerAccountId, requestId);
        params.setServerExtension(serverExtension);
        params.setSignallingConfig(signallingConfig);
        params.setRtcConfig(rtcConfig);
        return params;
       }
      }
    }
    
    iOS
    objective-c@interface V2NIMSignallingCallSetupParams : NSObject
    @property (nonatomic, copy) NSString *channelId;
    @property (nonatomic, copy) NSString *callerAccountId;
    @property (nonatomic, copy) NSString *requestId;
    @property (nonatomic, copy, nullable) NSString *serverExtension;
    @property (nonatomic, strong, nullable) V2NIMSignallingConfig *signallingConfig;
    @property (nonatomic, strong, nullable) V2NIMSignallingRtcConfig *rtcConfig;
    @end
    
    Windows/macOS
    cppstruct V2NIMSignallingCallSetupParams {
        nstd::string channelId;
        nstd::string callerAccountId;
        nstd::string requestId;
        nstd::optional<nstd::string> serverExtension;
        nstd::optional<V2NIMSignallingConfig> signallingConfig;
        nstd::optional<V2NIMSignallingRtcConfig> rtcConfig;
    };
    
    Web/uni-app/小程序
    typescriptexport type V2NIMSignallingCallSetupParams = {
    
      channelId: string
      callerAccountId: string
      requestId: string
      serverExtension?: string
      signallingConfig?: V2NIMSignallingConfig
      rtcConfig?: V2NIMSignallingRtcConfig
    }
    
    HarmonyOS
    typescriptexport interface V2NIMSignallingCallSetupParams {
    
      channelId: string
      callerAccountId: string
      requestId: string
      serverExtension?: string
      signallingConfig?: V2NIMSignallingConfig
      rtcConfig?: V2NIMSignallingRtcConfig
    }
    

    成员参数

    名称 类型 是否必填 默认值 描述
    channelId string - 信令频道 ID。
    callerAccountId string - 接受呼叫的用户账号 ID,为空或为空字符串则返回参数错误。
    requestId string - 请求 ID,请求的唯一标识,即相同的 RequestId 表示同一个请求。随机数,最大长度 128 位字符,可通过 UUID 实现。
  • 请求 ID 主要为了便于业务实现请求响应绑定。
  • 传入为空或为空字符串则返回参数错误。
  • serverExtension string - 服务端扩展字段,JSON 格式,长度最大为 4096 字符。
    signallingConfig V2NIMSignallingConfig - 信令相关配置项(未读配置字段 unreadEnabled 在接受场景无效)。
    rtcConfig V2NIMSignallingRtcConfig - 音视频相关配置项。

    V2NIMSignallingCallSetupResult

    接受呼叫请求的回包,即调用建立呼叫接口成功的返回结果。

    Android
    javapublic interface V2NIMSignallingCallSetupResult {
    
        V2NIMSignallingRoomInfo getRoomInfo();
        V2NIMSignallingRtcInfo getRtcInfo();
        int getCallStatus();
    }
    
    iOS
    objective-c@interface V2NIMSignallingCallSetupResult : NSObject
    @property (nonatomic, strong, readonly) V2NIMSignallingRoomInfo *roomInfo;
    @property (nonatomic, strong, readonly, nullable) V2NIMSignallingRtcInfo *rtcInfo;
    @property (nonatomic, assign, readonly) int callStatus;
    @end
    
    Windows/macOS
    cppstruct V2NIMSignallingCallSetupResult {
        V2NIMSignallingRoomInfo roomInfo;
        nstd::optional<V2NIMSignallingRtcInfo> rtcInfo;
        nstd::optional<uint32_t> callStatus;
    };
    
    Web/uni-app/小程序
    typescriptexport type V2NIMSignallingCallSetupResult = {
    
      roomInfo: V2NIMSignallingRoomInfo
      rtcInfo?: V2NIMSignallingRtcInfo
      callStatus?: number
    }
    
    HarmonyOS
    typescriptexport interface V2NIMSignallingCallSetupResult {
    
      roomInfo: V2NIMSignallingRoomInfo
      rtcInfo?: V2NIMSignallingRtcInfo
      callStatus?: number
    }
    

    成员参数

    名称 类型 是否必返回 是否只读 描述
    roomInfo V2NIMSignallingRoomInfo 频道房间的相关信息。
    rtcInfo V2NIMSignallingRtcInfo 音视频房间的相关信息。
    callStatus number 呼叫状态。
  • 200:呼叫成功。
  • 118308:信令成员不在线, 但推送可达。
  • 118309:信令成员不在线, 且推送不可达。
  • V2NIMSignallingMember

    信令频道房间成员信息。

    Android
    javapublic interface V2NIMSignallingMember {
    
      String getAccountId();
      long getUid();
      long getJoinTime();
      long getExpireTime();
      String getDeviceId();
    }
    
    iOS
    objective-c@interface V2NIMSignallingMember : NSObject
    @property (nonatomic, copy, readonly) NSString *accountId;
    @property (nonatomic, assign, readonly) long uid;
    @property (nonatomic, assign, readonly) NSTimeInterval joinTime;
    @property (nonatomic, assign, readonly) NSTimeInterval expireTime;
    @property (nonatomic, copy, readonly) NSString *deviceId;
    @end
    
    Windows/macOS
    cppstruct V2NIMSignallingMember {
        nstd::string accountId;
        int64_t uid{0};
        time_t joinTime{0};
        time_t expireTime{0};
        nstd::string deviceId;
    };
    
    Web/uni-app/小程序
    typescriptexport type V2NIMSignallingMember = {
    
      accountId: string
      uid: number
      joinTime: number
      expireTime: number
      deviceId: string
    }
    
    
    HarmonyOS
    typescriptexport interface V2NIMSignallingMember {
    
      accountId: string
      uid: number
      joinTime: number
      expireTime: number
      deviceId: string
    }
    

    成员参数

    名称 类型 是否必返回 是否只读 描述
    accountId string 成员账号 ID。
    uid number 成员 UID。业务参数,一般映射为音视频房间 ID。
    joinTime number 用户加入信令频道房间的时间。
    expireTime number 用户信令频道房间的过期时间。
    deviceId string 成员操作的设备 ID。

    V2NIMSignallingRoomInfo

    信令频道房间成员信息。

    Android
    javapublic interface V2NIMSignallingRoomInfo {
    
      V2NIMSignallingChannelInfo getChannelInfo();
      List<V2NIMSignallingMember> getMembers();
    }
    
    iOS
    objective-c@interface V2NIMSignallingRoomInfo : NSObject
    @property (nonatomic, strong, readonly) V2NIMSignallingChannelInfo *channelInfo;
    @property (nonatomic, strong, readonly) NSArray<V2NIMSignallingMember *> *members;
    @end
    
    Windows/macOS
    cppstruct V2NIMSignallingRoomInfo {
        V2NIMSignallingChannelInfo channelInfo;
        nstd::vector<V2NIMSignallingMember> members;
    };
    
    Web/uni-app/小程序
    typescriptexport type V2NIMSignallingRoomInfo = {
    
      channelInfo: V2NIMSignallingChannelInfo
      members: V2NIMSignallingMember[]
    }
    
    HarmonyOS
    typescriptexport interface V2NIMSignallingRoomInfo {
    
      channelInfo: V2NIMSignallingChannelInfo
      members: V2NIMSignallingMember[]
    }
    

    成员参数

    名称 类型 是否必返回 是否只读 描述
    channelInfo V2NIMSignallingChannelInfo 信令频道房间的相关信息(其中频道房间的国企时间会根据时间进行更新调整)。
    members List<V2NIMSignallingMember> 成员列表信息。

    V2NIMSignallingJoinParams

    加入信令频道房间的配置参数。

    Android
    javapublic class V2NIMSignallingJoinParams {
      private static final String TAG = "V2NIMSignallingJoinParams";
      private final String channelId;
      private String serverExtension;
      private V2NIMSignallingConfig signallingConfig;
      private V2NIMSignallingRtcConfig rtcConfig;
    
      private V2NIMSignallingJoinParams() {
       this(null);
      }
    
      public V2NIMSignallingJoinParams(String channelId) {
       this.channelId = channelId;
      }
    
      public String getChannelId() {
       return channelId;
      }
    
      public String getServerExtension() {
       return serverExtension;
      }
    
      public void setServerExtension(String serverExtension) {
       this.serverExtension = serverExtension;
      }
    
      public V2NIMSignallingConfig getSignallingConfig() {
       return signallingConfig;
      }
    
      public void setSignallingConfig(V2NIMSignallingConfig signallingConfig) {
       this.signallingConfig = signallingConfig;
      }
    
      public V2NIMSignallingRtcConfig getRtcConfig() {
       return rtcConfig;
      }
    
      public void setRtcConfig(V2NIMSignallingRtcConfig rtcConfig) {
       this.rtcConfig = rtcConfig;
      }
    
      public boolean isValid() {
       if(TextUtils.isEmpty(channelId)){
        NimLog.e(TAG,"channelId is invalid");
        return false;
       }
       return true;
      }
    
      public static class Builder {
       private final V2NIMSignallingJoinParams params;
    
       public Builder(String channelId) {
        params = new V2NIMSignallingJoinParams(channelId);
       }
    
       public Builder serverExtension(String serverExtension) {
        params.setServerExtension(serverExtension);
        return this;
       }
    
       public Builder signallingConfig(V2NIMSignallingConfig signallingConfig) {
        params.setSignallingConfig(signallingConfig);
        return this;
       }
    
       public Builder rtcConfig(V2NIMSignallingRtcConfig rtcConfig) {
        params.setRtcConfig(rtcConfig);
        return this;
      }
    
       public V2NIMSignallingJoinParams build() {
        return params;
       }
      }
    }
    
    iOS
    objective-c@interface V2NIMSignallingJoinParams : NSObject
    @property (nonatomic, copy) NSString *channelId;
    @property (nonatomic, copy, nullable) NSString *serverExtension;
    @property (nonatomic, strong, nullable) V2NIMSignallingConfig *signallingConfig;
    @property (nonatomic, strong, nullable) V2NIMSignallingRtcConfig *rtcConfig;
    @end
    
    Windows/macOS
    cppstruct V2NIMSignallingJoinParams {
        nstd::string channelId;
        nstd::optional<nstd::string> serverExtension;
        nstd::optional<V2NIMSignallingConfig> signallingConfig;
        nstd::optional<V2NIMSignallingRtcConfig> rtcConfig;
    };
    
    Web/uni-app/小程序
    typescriptexport type V2NIMSignallingJoinParams = {
    
      channelId: string
      serverExtension?: string
      signallingConfig?: V2NIMSignallingConfig
      rtcConfig?: V2NIMSignallingRtcConfig
    }
    
    HarmonyOS
    typescriptexport interface  V2NIMSignallingJoinParams {
    
      channelId: string
      serverExtension?: string
      signallingConfig?: V2NIMSignallingConfig
      rtcConfig?: V2NIMSignallingRtcConfig
    }
    

    成员参数

    名称 类型 是否必填 默认值 描述
    channelId string - 信令频道 ID。
    serverExtension string - 服务端扩展字段,JSON 格式,长度最大为 4096 字符。
    signallingConfig V2NIMSignallingConfig - 信令相关配置项。
    rtcConfig V2NIMSignallingRtcConfig - 音视频相关配置项。

    V2NIMSignallingInviteParams

    邀请成员加入信令频道房间的配置参数。

    Android
    javapublic class V2NIMSignallingInviteParams {
      private static final String TAG = "V2NIMSignallingInviteParams";
      private final String channelId;
      private final String inviteeAccountId;
      private final String requestId;
      private String serverExtension;
      private V2NIMSignallingConfig signallingConfig;
      private V2NIMSignallingPushConfig pushConfig;
      private V2NIMSignallingInviteParams() {
       this(null, null, null);
      }
    
      public V2NIMSignallingInviteParams(String channelId, String inviteeAccountId, String requestId) {
       this.channelId = channelId;
       this.inviteeAccountId = inviteeAccountId;
       this.requestId = requestId;
    
      }
    
      public String getChannelId() {
       return channelId;
      }
    
      public String getInviteeAccountId() {
       return inviteeAccountId;
      }
    
      public String getRequestId() {
       return requestId;
      }
    
      public String getServerExtension() {
       return serverExtension;
      }
    
      public void setServerExtension(String serverExtension) {
       this.serverExtension = serverExtension;
      }
    
      public V2NIMSignallingConfig getSignallingConfig() {
       return signallingConfig;
      }
    
      public void setSignallingConfig(V2NIMSignallingConfig signallingConfig) {
       this.signallingConfig = signallingConfig;
      }
    
      public V2NIMSignallingPushConfig getPushConfig() {
       return pushConfig;
      }
    
      public void setPushConfig(V2NIMSignallingPushConfig pushConfig) {
       this.pushConfig = pushConfig;
      }
    
      public boolean isValid() {
       if(TextUtils.isEmpty(channelId)){
        NimLog.e(TAG,"channelId is invalid");
        return false;
       }
       if(TextUtils.isEmpty(inviteeAccountId)){
        NimLog.e(TAG,"inviterAccountId is invalid");
        return false;
       }
       if(Objects.equals(inviteeAccountId, SDKCacheUI.getAccount())){
        NimLog.e(TAG,"inviterAccountId can not be self account");
        return false;
       }
       if(TextUtils.isEmpty(requestId)){
        NimLog.e(TAG,"requestId is invalid");
        return false;
       }
       return true;
      }
    
      public static class Builder {
       private final V2NIMSignallingInviteParams params;
    
       public Builder(String channelId, String inviteeAccountId, String requestId) {
        params = new V2NIMSignallingInviteParams(channelId, inviteeAccountId, requestId);
       }
    
       public Builder serverExtension(String serverExtension) {
        params.setServerExtension(serverExtension);
        return this;
       }
    
       public Builder signallingConfig(V2NIMSignallingConfig signallingConfig) {
        params.setSignallingConfig(signallingConfig);
        return this;
       }
    
       public Builder pushConfig(V2NIMSignallingPushConfig pushConfig) {
        params.setPushConfig(pushConfig);
        return this;
       }
    
       public V2NIMSignallingInviteParams build() {
        return params;
       }
      }
    }
    
    iOS
    objective-c@interface V2NIMSignallingInviteParams : NSObject
    @property (nonatomic, copy) NSString *channelId;
    @property (nonatomic, copy) NSString *inviteeAccountId;
    @property (nonatomic, copy) NSString *requestId;
    @property (nonatomic, copy,nullable) NSString *serverExtension;
    @property (nonatomic, strong,nullable) V2NIMSignallingConfig *signallingConfig;
    @property (nonatomic, strong,nullable) V2NIMSignallingPushConfig *pushConfig;
    @end
    
    Windows/macOS
    cppstruct V2NIMSignallingInviteParams {
        nstd::string channelId;
        nstd::string inviteeAccountId;
        nstd::string requestId;
        nstd::optional<nstd::string> serverExtension;
        nstd::optional<V2NIMSignallingConfig> signallingConfig;
        nstd::optional<V2NIMSignallingPushConfig> pushConfig;
    };
    
    Web/uni-app/小程序
    typescriptexport type V2NIMSignallingInviteParams = {
    
      channelId: string
      inviteeAccountId: string
      requestId: string
      serverExtension?: string
      signallingConfig?: V2NIMSignallingConfig
      pushConfig?: V2NIMSignallingPushConfig
    }
    
    HarmonyOS
    typescriptexport interface V2NIMSignallingInviteParams {
    
      channelId: string
      inviteeAccountId: string
      requestId: string
      serverExtension?: string
      signallingConfig?: V2NIMSignallingConfig
      pushConfig?: V2NIMSignallingPushConfig
    }
    

    成员参数

    名称 类型 是否必填 默认值 描述
    channelId string - 信令频道 ID。
    inviteeAccountId string - 被邀请者的用户账号 ID,为空或为空字符串则返回参数错误。
    requestId string - 请求 ID,请求的唯一标识,即相同的 RequestId 表示同一个请求。随机数,最大长度 128 位字符,可通过 UUID 实现。
  • 请求 ID 主要为了便于业务实现请求响应绑定。
  • 传入为空或为空字符串则返回参数错误。
  • serverExtension string - 服务端扩展字段,JSON 格式,长度最大为 4096 字符。
    signallingConfig V2NIMSignallingConfig - 信令相关配置项(其中 selfUid 字段在此场景中无效)。
    pushConfig V2NIMSignallingPushConfig - 推送相关配置项。

    V2NIMSignallingCancelInviteParams

    取消邀请成员加入信令频道房间请求的配置参数。

    Android
    javapublic class V2NIMSignallingCancelInviteParams {
      private static final String TAG = "V2NIMSignallingCancelInviteParams";
      private final String channelId;
      private final String inviteeAccountId;
      private final String requestId;
      private String serverExtension;
      private boolean offlineEnabled = true;
    
      private V2NIMSignallingCancelInviteParams() {
       this(null, null, null);
      }
    
      public V2NIMSignallingCancelInviteParams(String channelId, String inviteeAccountId, String requestId) {
       this.channelId = channelId;
       this.inviteeAccountId = inviteeAccountId;
       this.requestId = requestId;
      }
    
      public String getChannelId() {
       return channelId;
      }
    
      public String getInviteeAccountId() {
       return inviteeAccountId;
      }
    
      public String getRequestId() {
       return requestId;
      }
    
      public String getServerExtension() {
       return serverExtension;
      }
    
      public void setServerExtension(String serverExtension) {
       this.serverExtension = serverExtension;
      }
    
      public boolean isOfflineEnabled() {
       return offlineEnabled;
      }
    
      public void setOfflineEnabled(boolean offlineEnabled) {
       this.offlineEnabled = offlineEnabled;
      }
    
      public boolean isValid(){
       if(TextUtils.isEmpty(channelId)){
        NimLog.e(TAG,"channelId is invalid");
        return false;
       }
       if(TextUtils.isEmpty(inviteeAccountId)){
        NimLog.e(TAG,"inviterAccountId is invalid");
        return false;
       }
       if(Objects.equals(inviteeAccountId, SDKCacheUI.getAccount())){
        NimLog.e(TAG,"inviterAccountId can not be self account");
        return false;
       }
       if(TextUtils.isEmpty(requestId)){
        NimLog.e(TAG,"requestId is invalid");
        return false;
       }
       return true;
      }
    
      public static class Builder {
       private final V2NIMSignallingCancelInviteParams params;
    
       public Builder(String channelId, String inviteeAccountId, String requestId) {
        params = new V2NIMSignallingCancelInviteParams(channelId, inviteeAccountId, requestId);
       }
    
       public Builder serverExtension(String serverExtension) {
        params.setServerExtension(serverExtension);
        return this;
       }
    
       public Builder offlineEnabled(boolean offlineEnabled) {
        params.setOfflineEnabled(offlineEnabled);
        return this;
       }
    
       public V2NIMSignallingCancelInviteParams build() {
        return params;
       }
      }
    }
    
    iOS
    objective-c@interface V2NIMSignallingCancelInviteParams : NSObject
    @property (nonatomic, copy) NSString *channelId;
    @property (nonatomic, copy) NSString *inviteeAccountId;
    @property (nonatomic, copy) NSString *requestId;
    @property (nonatomic, copy, nullable) NSString *serverExtension;
    @property (nonatomic, assign) BOOL offlineEnabled;
    @end
    
    Windows/macOS
    cppstruct V2NIMSignallingCancelInviteParams {
        nstd::string channelId;
        nstd::string inviteeAccountId;
        nstd::string requestId;
        nstd::optional<nstd::string> serverExtension;
        nstd::optional<bool> offlineEnabled;
    };
    
    Web/uni-app/小程序
    typescriptexport type V2NIMSignallingCancelInviteParams = {
    
      channelId: string
      inviteeAccountId: string
      requestId: string
      serverExtension?: string
      offlineEnabled?: boolean
    }
    
    HarmonyOS
    typescriptexport interface V2NIMSignallingCancelInviteParams {
    
      channelId: string
      inviteeAccountId: string
      requestId: string
      serverExtension?: string
      offlineEnabled?: boolean
    }
    

    成员参数

    名称 类型 是否必填 默认值 描述
    channelId string - 信令频道 ID。
    inviteeAccountId string - 被邀请者的用户账号 ID,为空或为空字符串则返回参数错误。
    requestId string - 请求 ID,请求的唯一标识,即相同的 RequestId 表示同一个请求。随机数,最大长度 128 位字符,可通过 UUID 实现。
  • 请求 ID 主要为了便于业务实现请求响应绑定。
  • 传入为空或为空字符串则返回参数错误。
  • serverExtension string - 服务端扩展字段,JSON 格式,长度最大为 4096 字符。
    offlineEnabled boolean true 是否需要存离线消息。默认为 true,即存离线,当用户离线状态下再次上线会收到通知消息。

    V2NIMSignallingRejectInviteParams

    拒绝加入频道房间邀请的配置参数。

    Android
    javapublic class V2NIMSignallingRejectInviteParams {
      private static final String TAG = "V2NIMSignallingRejectInviteParams";
      private final String channelId;
      private final String inviterAccountId;
      private final String requestId;
      private String serverExtension;
      private boolean offlineEnabled = true;
    
      private V2NIMSignallingRejectInviteParams() {
       this(null, null, null);
      }
    
      public V2NIMSignallingRejectInviteParams(String channelId, String inviterAccountId, String requestId) {
       this.channelId = channelId;
       this.inviterAccountId = inviterAccountId;
       this.requestId = requestId;
      }
    
      public String getChannelId() {
       return channelId;
      }
    
      public String getInviterAccountId() {
       return inviterAccountId;
      }
    
      public String getRequestId() {
       return requestId;
      }
    
      public String getServerExtension() {
       return serverExtension;
      }
    
      public void setServerExtension(String serverExtension) {
       this.serverExtension = serverExtension;
      }
    
      public boolean isOfflineEnabled() {
       return offlineEnabled;
      }
    
      public void setOfflineEnabled(boolean offlineEnabled) {
       this.offlineEnabled = offlineEnabled;
      }
    
      public boolean isValid(){
       if(TextUtils.isEmpty(channelId)){
        NimLog.e(TAG,"channelId is invalid");
        return false;
       }
       if(TextUtils.isEmpty(inviterAccountId)){
        NimLog.e(TAG,"inviterAccountId is invalid");
        return false;
       }
       if(Objects.equals(inviterAccountId, SDKCacheUI.getAccount())){
        NimLog.e(TAG,"inviterAccountId can not be self account");
        return false;
       }
       if(TextUtils.isEmpty(requestId)){
        NimLog.e(TAG,"requestId is invalid");
        return false;
       }
       return true;
      }
    
      public static class Builder {
       private final V2NIMSignallingRejectInviteParams params;
    
       public Builder(String channelId, String inviterAccountId, String requestId) {
        params = new V2NIMSignallingRejectInviteParams(channelId, inviterAccountId, requestId);
       }
    
       public Builder serverExtension(String serverExtension) {
        params.setServerExtension(serverExtension);
        return this;
       }
    
       public Builder offlineEnabled(boolean offlineEnabled) {
        params.setOfflineEnabled(offlineEnabled);
        return this;
       }
    
       public V2NIMSignallingRejectInviteParams build() {
        return params;
       }
      }
    }
    
    iOS
    objective-c@interface V2NIMSignallingRejectInviteParams : NSObject
    
    @property (nonatomic, copy) NSString *channelId;
    @property (nonatomic, copy) NSString *inviterAccountId;
    @property (nonatomic, copy) NSString *requestId;
    @property (nonatomic, copy, nullable) NSString *serverExtension;
    @property (nonatomic, assign) BOOL offlineEnabled;
    @end
    
    Windows/macOS
    cppstruct V2NIMSignallingRejectInviteParams {
        nstd::string channelId;
        nstd::string inviterAccountId;
        nstd::string requestId;
        nstd::optional<nstd::string> serverExtension;
        nstd::optional<bool> offlineEnabled;
    };
    
    Web/uni-app/小程序
    typescriptexport type V2NIMSignallingRejectInviteParams = {
    
      channelId: string
      inviterAccountId: string
      requestId: string
      serverExtension?: string
      offlineEnabled?: boolean
    }
    
    HarmonyOS
    typescriptexport interface V2NIMSignallingRejectInviteParams {
    
      channelId: string
      inviterAccountId: string
      requestId: string
      serverExtension?: string
      offlineEnabled?: boolean
    }
    

    成员参数

    名称 类型 是否必填 默认值 描述
    channelId string - 信令频道 ID。
    inviterAccountId string - 邀请者的用户账号 ID,为空或为空字符串则返回参数错误。
    requestId string - 请求 ID,请求的唯一标识,即相同的 RequestId 表示同一个请求。随机数,最大长度 128 位字符,可通过 UUID 实现。
  • 请求 ID 主要为了便于业务实现请求响应绑定。
  • 传入为空或为空字符串则返回参数错误。
  • serverExtension string - 服务端扩展字段,JSON 格式,长度最大为 4096 字符。
    offlineEnabled boolean true 是否需要存离线消息。默认为 true,即存离线,当用户离线状态下再次上线会收到通知消息。

    V2NIMSignallingAcceptInviteParams

    接受加入频道房间邀请的配置参数。

    Android
    javapublic class V2NIMSignallingAcceptInviteParams {
      private static final String TAG = "V2NIMSignallingAcceptInviteParams";
      private final String  channelId;
      private final String  inviterAccountId;
      private final String  requestId;
      private String  serverExtension;
      private boolean offlineEnabled = true;
    
      private V2NIMSignallingAcceptInviteParams() {
       this(null, null, null);
      }
    
      public V2NIMSignallingAcceptInviteParams(String channelId, String inviterAccountId, String requestId) {
       this.channelId = channelId;
       this.inviterAccountId = inviterAccountId;
       this.requestId = requestId;
      }
    
      public String getChannelId() {
       return channelId;
      }
    
      public String getInviterAccountId() {
       return inviterAccountId;
      }
    
      public String getRequestId() {
       return requestId;
      }
    
      public String getServerExtension() {
       return serverExtension;
      }
    
      public void setServerExtension(String serverExtension) {
       this.serverExtension = serverExtension;
      }
    
      public boolean isOfflineEnabled() {
       return offlineEnabled;
      }
    
      public void setOfflineEnabled(boolean offlineEnabled) {
       this.offlineEnabled = offlineEnabled;
      }
    
      public boolean isValid(){
       if(TextUtils.isEmpty(channelId)){
        NimLog.e(TAG,"channelId is invalid");
        return false;
       }
       if(TextUtils.isEmpty(inviterAccountId)){
        NimLog.e(TAG,"inviterAccountId is invalid");
        return false;
       }
       if(Objects.equals(inviterAccountId, SDKCacheUI.getAccount())){
        NimLog.e(TAG,"inviterAccountId can not be self account");
        return false;
       }
       if(TextUtils.isEmpty(requestId)){
        NimLog.e(TAG,"requestId is invalid");
        return false;
       }
       return true;
      }
    
      public static class Builder {
    
       private final V2NIMSignallingAcceptInviteParams params;
    
       public Builder(String channelId, String inviterAccountId, String requestId) {
        params = new V2NIMSignallingAcceptInviteParams(channelId, inviterAccountId, requestId);
       }
    
       public Builder serverExtension(String serverExtension) {
        params.setServerExtension(serverExtension);
        return this;
       }
    
       public Builder offlineEnabled(boolean offlineEnabled) {
        params.setOfflineEnabled(offlineEnabled);
        return this;
       }
    
       public V2NIMSignallingAcceptInviteParams build() {
        return params;
       }
      }
    }
    
    iOS
    objective-c@interface V2NIMSignallingAcceptInviteParams : NSObject
    @property (nonatomic, copy) NSString *channelId;
    @property (nonatomic, copy) NSString *inviterAccountId;
    @property (nonatomic, copy) NSString *requestId;
    @property (nonatomic, copy, nullable) NSString *serverExtension;
    @property (nonatomic, assign) BOOL offlineEnabled;
    @end
    
    Windows/macOS
    cppstruct V2NIMSignallingAcceptInviteParams {
        nstd::string channelId;
        nstd::string inviterAccountId;
        nstd::string requestId;
        nstd::optional<nstd::string> serverExtension;
        nstd::optional<bool> offlineEnabled;
    };
    
    Web/uni-app/小程序
    typescriptexport type V2NIMSignallingAcceptInviteParams = {
    
      channelId: string
      inviterAccountId: string
      requestId: string
      serverExtension?: string
      offlineEnabled?: boolean
    }
    
    HarmonyOS
    typescriptexport interface V2NIMSignallingAcceptInviteParams {
    
      channelId: string
      inviterAccountId: string
      requestId: string
      serverExtension?: string
      offlineEnabled?: boolean
    }
    

    成员参数

    名称 类型 是否必填 默认值 描述
    channelId string - 信令频道 ID。
    inviterAccountId string - 邀请者的用户账号 ID,为空或为空字符串则返回参数错误。
    requestId string - 请求 ID,请求的唯一标识,即相同的 RequestId 表示同一个请求。随机数,最大长度 128 位字符,可通过 UUID 实现。
  • 请求 ID 主要为了便于业务实现请求响应绑定。
  • 传入为空或为空字符串则返回参数错误。
  • serverExtension string - 服务端扩展字段,JSON 格式,长度最大为 4096 字符。
    offlineEnabled boolean true 是否需要存离线消息。默认为 true,即存离线,当用户离线状态下再次上线会收到通知消息。

    V2NIMSignallingEvent

    信令事件信息。

    Android
    javapublic interface V2NIMSignallingEvent {
    
      V2NIMSignallingEventType getEventType();
      V2NIMSignallingChannelInfo getChannelInfo();
      String getOperatorAccountId();
      String getServerExtension();
      long getTime();
      String getInviteeAccountId();
      String getInviterAccountId();
      String getRequestId();
      V2NIMSignallingPushConfig getPushConfig();
      Boolean isUnreadEnabled();
      V2NIMSignallingMember getMember();
    }
    
    iOS
    objective-c@interface V2NIMSignallingEvent : NSObject
    @property (nonatomic, assign, readonly) V2NIMSignallingEventType eventType;
    @property (nonatomic, strong, readonly) V2NIMSignallingChannelInfo *channelInfo;
    @property (nonatomic, copy, readonly) NSString *operatorAccountId;
    @property (nonatomic, copy, readonly, nullable) NSString *serverExtension;
    @property (nonatomic, assign, readonly) NSTimeInterval time;
    @property (nonatomic, copy, readonly, nullable) NSString *inviteeAccountId;
    @property (nonatomic, copy, readonly, nullable) NSString *inviterAccountId;
    @property (nonatomic, copy, readonly) NSString *requestId;
    @property (nonatomic, strong, readonly, nullable) V2NIMSignallingPushConfig *pushConfig;
    @property (nonatomic, assign, readonly) BOOL unreadEnabled;
    @property (nonatomic, strong, readonly, nullable) V2NIMSignallingMember *member;
    @end
    
    Windows/macOS
    cppstruct V2NIMSignallingEvent {
        V2NIMSignallingEventType eventType;
        V2NIMSignallingChannelInfo channelInfo;
        nstd::string operatorAccountId;
        nstd::optional<nstd::string> serverExtension;
        uint64_t time;
        nstd::optional<nstd::string> inviteeAccountId;
        nstd::optional<nstd::string> inviterAccountId;
        nstd::string requestId;
        nstd::optional<V2NIMSignallingPushConfig> pushConfig;
        nstd::optional<bool> unreadEnabled;
        nstd::optional<V2NIMSignallingMember> member;
    };
    
    Web/uni-app/小程序
    typescriptexport type V2NIMSignallingEvent = {
    
      eventType: V2NIMSignallingEventType
      channelInfo: V2NIMSignallingChannelInfo
      operatorAccountId: string
      time: number
      inviteeAccountId?: string
      inviterAccountId?: string
      requestId?: string
      pushConfig?: V2NIMSignallingPushConfig
      unreadEnabled?: boolean
      member?: V2NIMSignallingMember
    }
    
    HarmonyOS
    typescriptexport interface V2NIMSignallingEvent {
    
      eventType: V2NIMSignallingEventType
      channelInfo: V2NIMSignallingChannelInfo
      operatorAccountId: string
      serverExtension?: string
      time: number,
      inviteeAccountId?: string,
      inviterAccountId?: string,
      requestId: string,
      pushConfig?: V2NIMSignallingPushConfig
      unreadEnabled?: boolean
      member?: V2NIMSignallingMember
    }
    

    成员参数

    名称 类型 是否必返回 是否只读 描述
    eventType V2NIMSignallingEventType 信令频道事件类型。
    channelInfo V2NIMSignallingChannelInfo 信令频道房间信息。
    operatorAccountId string 操作者用户账号 ID。
    serverExtension string 服务端扩展字段,JSON 格式,长度最大为 4096 字符。
    time number 是否需要存离线消息。默认为 true,即存离线,当用户离线状态下再次上线会收到通知消息。
    inviteeAccountId string 被邀请者的用户账号 ID。当邀请或取消邀请他人加入信令频道房间的事件包含该字段。
    inviterAccountId string 邀请者的用户账号 ID。当对方接受或者拒绝邀请的事件包含该字段。
    requestId string 本次请求发起产生的请求ID, 以下事件包含该字段:
  • 邀请加入信令频道房间
  • 拒绝邀请
  • 接受邀请
  • 取消邀请
  • pushConfig V2NIMSignallingPushConfig 推送相关配置,邀请加入信令频道房间的事件包含该字段,可能为空(依赖于发起方)。
    unreadEnabled boolean 是否需要计未读数。默认为 true,需要。
    member V2NIMSignallingMember 频道房间成员信息,成员加入房间事件包含该字段。

    V2NIMSignallingListener

    信令相关监听器。

    Android
    javapublic interface V2NIMSignallingListener {
    
      void onOnlineEvent(V2NIMSignallingEvent event);
      void onOfflineEvent(List<V2NIMSignallingEvent> events);
      void onMultiClientEvent(V2NIMSignallingEvent event);
      void onSyncRoomInfoList(List<V2NIMSignallingRoomInfo> channelRooms);
    }
    
    iOS
    objective-c@protocol V2NIMSignallingListener <NSObject>
    
    - (void)onOnlineEvent:(V2NIMSignallingEvent *)event;
    
    - (void)onOfflineEvent:(NSArray<V2NIMSignallingEvent *> *)event;
    
    - (void)onMultiClientEvent:(V2NIMSignallingEvent *)event;
    
    - (void)onSyncRoomInfoList:(NSArray<V2NIMSignallingRoomInfo *> *)channelRooms;
    
    @end
    
    Windows/macOS
    cppstruct V2NIMSignallingListener {
        nstd::function<void(const V2NIMSignallingEvent& event)> onOnlineEvent;
        nstd::function<void(const nstd::vector<V2NIMSignallingEvent>& events)> onOfflineEvent;
        nstd::function<void(const V2NIMSignallingEvent& event)> onMultiClientEvent;
        nstd::function<void(const nstd::vector<V2NIMSignallingRoomInfo>& roomInfoList)> onSyncRoomInfoList;
    };
    
    Web/uni-app/小程序
    typescriptnim.V2NIMSignallingService.on("onOnlineEvent", (event: V2NIMSignallingEvent ) => {
      console.log('onOnlineEvent', event)
    })
    
    nim.V2NIMSignallingService.on("onOfflineEvent", (events: V2NIMSignallingEvent[]) => {
      console.log('onOfflineEvent', events)
    })
    
    nim.V2NIMSignallingService.on("onMultiClientEvent", (event: V2NIMSignallingEvent) => {
      console.log('onMultiClientEvent', event)
    })
    
    nim.V2NIMSignallingService.on("onSyncRoomInfoList", (roomInfoList: V2NIMSignallingRoomInfo[]) => {
      console.log('onSyncRoomInfoList', roomInfoList)
    })
    
    HarmonyOS
    typescriptnimsdk.signallingService!.on("onOnlineEvent", (event: V2NIMSignallingEvent ) => {
      shownListenerDialog('onOnlineEvent', JSON.stringify(event, null, 2))
    })
    
    nimsdk.signallingService!.on("onOfflineEvent", (events: V2NIMSignallingEvent[]) => {
      shownListenerDialog('onOfflineEvent', JSON.stringify(events, null, 2))
    })
    
    nimsdk.signallingService!.on("onMultiClientEvent", (event: V2NIMSignallingEvent) => {
      shownListenerDialog('onMultiClientEvent', JSON.stringify(event, null, 2))
    })
    
    nimsdk.signallingService!.on("onSyncRoomInfoList", (channelRooms: V2NIMSignallingRoomInfo[]) => {
      shownListenerDialog('onSyncRoomInfoList', JSON.stringify(channelRooms, null, 2))
    })
    

    成员函数

    • onOnlineEvent

      在线事件回调。

      参数名称 类型 描述
      event V2NIMSignallingEvent 在线事件包括:
    • 关闭房间
    • 加入房间
    • 离开房间
    • 邀请加入房间
    • 取消邀请加入房间
    • 拒绝加入邀请
    • 接受加入邀请
    • 控制事件
    • onOfflineEvent

      离线事件回调。

      参数名称 类型 描述
      events List<V2NIMSignallingEvent> 离线事件包括:
    • 关闭房间
    • 加入房间
    • 离开房间
    • 邀请加入房间
    • 取消邀请加入房间
    • 拒绝加入邀请
    • 接受加入邀请
    • onMultiClientEvent

      多端事件操作同步回调。

      参数名称 类型 描述
      event V2NIMSignallingEvent 多端操作事件包括:
    • 拒绝加入邀请
    • 接受加入邀请
    • onSyncRoomInfoList

      登录后,同步仍在的信令频道房间列表的回调。

      参数名称 类型 描述
      roomInfoList List<V2NIMSignallingRoomInfo> 用户登录 SDK 后,同步获取当前未退出的信令频道列表。

    V2NIMSignallingChannelType

    信令频道类型。

    枚举类型 枚举值 描述
    V2NIM_SIGNALLING_CHANNEL_TYPE_AUDIO 1 音频频道
    V2NIM_SIGNALLING_CHANNEL_TYPE_VIDEO 2 视频频道
    V2NIM_SIGNALLING_CHANNEL_TYPE_CUSTOM 3 自定义频道

    V2NIMSignallingEventType

    信令频道事件类型。

    枚举类型 枚举值 描述
    V2NIM_SIGNALLING_EVENT_TYPE_UNKNOWN 0 未知
    V2NIM_SIGNALLING_EVENT_TYPE_CLOSE 1 关闭信令频道房间
    V2NIM_SIGNALLING_EVENT_TYPE_JOIN 2 加入信令频道房间
    V2NIM_SIGNALLING_EVENT_TYPE_INVITE 3 邀请加入信令频道房间
    V2NIM_SIGNALLING_EVENT_TYPE_CANCEL_INVITE 4 取消邀请加入信令频道房间
    V2NIM_SIGNALLING_EVENT_TYPE_REJECT 5 拒绝入房的邀请
    V2NIM_SIGNALLING_EVENT_TYPE_ACCEPT 6 接受入房的邀请
    V2NIM_SIGNALLING_EVENT_TYPE_LEAVE 7 离开信令频道房间
    V2NIM_SIGNALLING_EVENT_TYPE_CONTRO 8 自定义控制命令
    此文档是否对你有帮助?
    有帮助
    去反馈
    • 支持平台
    • API 概览
    • 信令监听
    • 信令操作
    • 接口类
    • addSignallingListener
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • removeSignallingListener
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • on("EventName")
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • off("EventName")
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • call
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • 相关回调
    • callSetup
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • 相关回调
    • createRoom
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • 相关回调
    • closeRoom
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • 相关回调
    • joinRoom
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • 相关回调
    • leaveRoom
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • 相关回调
    • invite
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • 相关回调
    • cancelInvite
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • 相关回调
    • rejectInvite
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • 相关回调
    • acceptInvite
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • 相关回调
    • sendControl
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • 相关回调
    • getRoomInfoByChannelName
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • 相关回调
    • 类/枚举
    • V2NIMSignallingCallParams
    • 成员参数
    • V2NIMSignallingConfig
    • 成员参数
    • V2NIMSignallingPushConfig
    • 成员参数
    • V2NIMSignallingRtcConfig
    • 成员参数
    • V2NIMSignallingCallResult
    • 成员参数
    • V2NIMSignallingChannelInfo
    • 成员参数
    • V2NIMSignallingRtcInfo
    • 成员参数
    • V2NIMSignallingCallSetupParams
    • 成员参数
    • V2NIMSignallingCallSetupResult
    • 成员参数
    • V2NIMSignallingMember
    • 成员参数
    • V2NIMSignallingRoomInfo
    • 成员参数
    • V2NIMSignallingJoinParams
    • 成员参数
    • V2NIMSignallingInviteParams
    • 成员参数
    • V2NIMSignallingCancelInviteParams
    • 成员参数
    • V2NIMSignallingRejectInviteParams
    • 成员参数
    • V2NIMSignallingAcceptInviteParams
    • 成员参数
    • V2NIMSignallingEvent
    • 成员参数
    • V2NIMSignallingListener
    • 成员函数
    • V2NIMSignallingChannelType
    • V2NIMSignallingEventType