新版信令客户端 API 参考
更新时间: 2024/07/23 16:52:57
NetEase IM SDK(以下简称 NIM SDK)提供信令服务,支持呼叫邀请、频道管理、用户管理、离线消息同步、多端同步和自定义控制信令。
本文介绍信令服务相关 API。
支持平台
Android | iOS | Windows/macOS | Web/uni-app/小程序 | HarmonyOS |
✔ | ✔ | ✔ | ✔ | ✔ |
API 概览
信令监听
API | 描述 | 起始版本 |
---|---|---|
addSignallingListener | 注册信令相关监听器 | V10.3.1(对应 iOS V10.3.2) |
removeSignallingListener | 移除信令相关监听器 | V10.3.1(对应 iOS V10.3.2) |
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 会返回对应的回调。
-
建议在初始化后调用该方法。
-
全局只需注册一次。
参数说明
Javavoid addSignallingListener(V2NIMSignallingListener listener);
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
listener |
V2NIMSignallingListener | 是 | - | 信令相关监听器 |
Objective-C- (void)addSignallingListener:(id<V2NIMSignallingListener>)listener;
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
listener |
V2NIMConversationListener | 是 | - | 信令相关监听器 |
cppvirtual void addSignallingListener(const V2NIMSignallingListener& listener) = 0;
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
listener |
V2NIMSignallingListener | 是 | - | 信令相关监听器 |
示例代码
JavaNIMClient.getService(V2NIMSignallingService.class).addSignallingListener(listener);
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
cppsignallingService.addSignallingListener(listener);
返回值
无
removeSignallingListener
接口描述
移除信令监听器。
参数说明
Javavoid removeSignallingListener(V2NIMSignallingListener listener);
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
listener |
V2NIMSignallingListener | 是 | - | 信令相关监听器 |
Objective-C- (void)removeSignallingListener:(id<V2NIMSignallingListener>)listener;
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
listener |
V2NIMSignallingListener | 是 | - | 信令相关监听器 |
cppvirtual void removeSignallingListener(const V2NIMSignallingListener& listener) = 0;
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
listener |
V2NIMSignallingListener | 是 | - | 信令相关监听器 |
示例代码
JavaNIMClient.getService(V2NIMSignallingService.class).removeSignallingListener(listener);
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
cppsignallingService.removeSignallingListener(listener);
返回值
无
on("EventName")
接口描述
注册信令服务相关监听。
注册成功后,当事件发生时,SDK 会触发相关回调通知。
-
建议在初始化后调用该方法。
-
全局只需注册一次。
-
该方法为同步。
参数说明
typescriptinterface V2NIMSignallingService extends EventEmitter3<V2NIMSignallingListener>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
eventName |
String | 是 | - | 事件名称:onOnlineEvent :在线状态事件回调,返回在线事件对象,包括关闭房间、加入房间、离开房间、邀请加入房间、取消邀请加入房间、拒绝加入邀请、接受加入邀请、控制事件。当本地端或多端同步在线事件成功时会触发该回调。onOfflineEvent :离线状态事件回调,返回离线事件对象,包括关闭房间、加入房间、离开房间、邀请加入房间、取消邀请加入房间、拒绝加入邀请、接受加入邀请。当本地端或多端同步离线事件成功时会触发该回调。onMultiClientEvent :多端事件操作回调,返回多端操作的事件对象,包括拒绝加入邀请、接受加入邀请。当多端操作事件成功时会触发该回调。 onSyncRoomInfoList :登录后同步信令频道房间列表回调。返回当前未退出的信令频道房间列表。 |
fn |
function | 是 | - | 处理事件的方法,当事件触发时,会调用此 handler 进行处理。 |
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 进行处理。 |
示例代码
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[]) {})
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")
接口描述
取消注册信令服务相关监听。
该方法为同步。
参数说明
typescriptinterface V2NIMSignallingService extends EventEmitter3<V2NIMSignallingListener>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
eventName |
String | 是 | - | 事件名称:onOnlineEvent :在线状态事件回调,返回在线事件对象,包括关闭房间、加入房间、离开房间、邀请加入房间、取消邀请加入房间、拒绝加入邀请、接受加入邀请、控制事件。当本地端或多端同步在线事件成功时会触发该回调。onOfflineEvent :离线状态事件回调,返回离线事件对象,包括关闭房间、加入房间、离开房间、邀请加入房间、取消邀请加入房间、拒绝加入邀请、接受加入邀请、控制事件。当本地端或多端同步离线事件成功时会触发该回调。onMultiClientEvent :多端事件操作回调,返回多端操作的事件对象,包括拒绝加入邀请、接受加入邀请。当多端操作事件成功时会触发该回调。 onSyncRoomInfoList :登录后同步信令频道房间列表回调。返回当前未退出的信令频道房间列表。 |
fn |
function | 是 | - | 处理事件的方法,当事件触发时,会调用此 handler 进行处理。 |
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 进行处理。 |
示例代码
typescriptnim.V2NIMSignallingService.off("onOnlineEvent")
nim.V2NIMSignallingService.off("onOfflineEvent")
nim.V2NIMSignallingService.off("onMultiClientEvent")
nim.V2NIMSignallingService.off("onSyncRoomInfoList")
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"
为了加速呼叫流程,云信信令通过将几个接口进行组合封装。本接口即组合上述三个接口,直接呼叫对方加入信令频道房间。如果您需要精确控制每一步,请通过调用单个接口实现。
参数说明
javavoid call(V2NIMSignallingCallParams params, V2NIMSuccessCallback<V2NIMSignallingCallResult> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingCallParams | 是 | - | 呼叫配置参数。 |
success |
V2NIMSuccessCallback<V2NIMSignallingCallResult> | 是 | - | 呼叫成功回调。 |
failure |
V2NIMFailureCallback | 是 | - | 呼叫失败回调,返回 错误码。 |
objective-c- (void)call:(V2NIMSignallingCallParams*)param
success:(V2NIMSignallingCallSuccess)success
failure:(V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
param |
V2NIMSignallingCallParams | 是 | - | 呼叫配置参数。 |
success |
V2NIMSignallingCallSuccess |
是 | - | 呼叫成功回调,可自定义设置。 |
failure |
V2NIMFailureCallback | 是 | - | 呼叫失败回调,返回 错误码。 |
cppvirtual void v2::V2NIMSignallingService::call ( const V2NIMSignallingCallParams & params,
const V2NIMSuccessCallback< const V2NIMSignallingCallResult & > & success,
const V2NIMFailureCallback & failure)
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingCallParams | 是 | - | 呼叫配置参数。 |
success |
V2NIMSuccessCallback<const V2NIMSignallingCallResult &> | 是 | - | 呼叫成功回调。 |
failure |
V2NIMFailureCallback | 是 | - | 呼叫失败回调,返回 错误码。 |
typescriptcall(params: V2NIMSignallingCallParams): Promise<V2NIMSignallingCallResult>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingCallParams | 是 | - | 呼叫配置参数。 |
typescriptcall(params: V2NIMSignallingCallParams): Promise<V2NIMSignallingCallResult>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingCallParams | 是 | - | 呼叫配置参数。 |
示例代码
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
}
});
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
}];
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
});
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)
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)
返回值
无返回值
Promise<V2NIMSignallingCallResult>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含V2NIMSignallingCallResult
结果。 - 请求失败,返回
V2NIMFailuerCallback
回调,包含信令相关错误码。
- 请求成功,返回
V2NIMSignallingCallSuccess
回调,可自定义。 - 请求失败,返回
V2NIMFailuerCallback
回调,包含信令相关错误码。
无
callSetup
接口描述
接通呼叫。
接通呼叫的正常流程如下:
flowchart LR
classDef default fill:#337EFF,stroke:#337EFF,stroke-width:0px,color:#FFFFFF;
A("加入信令频道房间(joinRoom)") --> B("接受对方的呼叫(acceptInvite)")
click A "#joinRoom"
click B "#acceptInvite"
本接口组合上述两个接口,直接接通呼叫。如果您需要精确控制每一步,请通过调用单个接口实现。
参数说明
javavoid callSetup(V2NIMSignallingCallSetupParams params, V2NIMSuccessCallback<V2NIMSignallingCallSetupResult> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingCallSetupParams | 是 | - | 接通呼叫的配置参数。 |
success |
V2NIMSuccessCallback<V2NIMSignallingCallSetupResult> | 是 | - | 接通成功回调,返回 V2NIMSignallingCallSetupResult 。 |
failure |
V2NIMFailureCallback | 是 | - | 接通失败回调,返回 错误码。 |
objective-c- (void)callSetup:(V2NIMSignallingCallSetupParams*)param
success:(V2NIMSignallingCallSetupSuccess)success
failure:(V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
param |
V2NIMSignallingCallSetupParams | 是 | - | 接通呼叫的配置参数。 |
success |
V2NIMSignallingCallSetupSuccess |
是 | - | 接通成功回调,可自定义。 |
failure |
V2NIMFailureCallback | 是 | - | 接通失败回调,返回 错误码。 |
cppvirtual void v2::V2NIMSignallingService::callSetup ( const V2NIMSignallingCallSetupParams & params,
const V2NIMSuccessCallback< V2NIMSignallingCallSetupResult > & success,
const V2NIMFailureCallback & failure )
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingCallSetupParams | 是 | - | 接通呼叫的配置参数。 |
success |
V2NIMSuccessCallback<V2NIMSignallingCallSetupResult> | 是 | - | 接通成功回调,返回 V2NIMSignallingCallSetupResult 。 |
failure |
V2NIMFailureCallback | 是 | - | 接通失败回调,返回 错误码。 |
typescriptcallSetup(params: V2NIMSignallingCallSetupParams): Promise<V2NIMSignallingCallSetupResult>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingCallSetupParams | 是 | - | 接通呼叫的配置参数。 |
typescriptcallSetup(params: V2NIMSignallingCallSetupParams): Promise<V2NIMSignallingCallSetupResult>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingCallSetupParams | 是 | - | 接通呼叫的配置参数。 |
示例代码
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
}
});
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
}];
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
});
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)
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)
返回值
无返回值
Promise<V2NIMSignallingCallSetupResult>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含V2NIMSignallingCallSetupResult
结果。 - 请求失败,返回
V2NIMFailuerCallback
回调,包含信令相关错误码。
- 请求成功,返回
V2NIMSignallingCallSetupSuccess
回调,可自定义。 - 请求失败,返回
V2NIMFailuerCallback
回调,包含信令相关错误码。
无
createRoom
接口描述
创建信令频道房间。
- 频道与房间一一对应,可直接视为同一含义。
- 在服务器中,频道名称存在唯一性,即相同的频道名,在服务器同时只能存在一个。
- 频道房间创建后,默认的有效时间为 2 小时。
- 频道房间中的人数默认上限为 100。
参数说明
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 | 是 | - | 创建失败回调,返回 错误码。 |
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 | 是 | - | 创建失败回调,返回 错误码。 |
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 | 是 | - | 创建失败回调,返回 错误码。 |
typescriptcreateRoom(channelType: V2NIMSignallingChannelType, channelName?: string, channelExtension?: string): Promise<V2NIMSignallingChannelInfo>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
channelType |
V2NIMSignallingChannelType | 是 | - | 频道类型。可选择音频、视频或自定义频道。 房间创建后与频道类型绑定。 |
channelName |
string | 否 | - | 频道名称。 建议使用与业务有相关场景的名称,便于页面显示。 |
channelExtension |
string | 否 | - | 频道相关扩展字段,JSON 格式,长度最大为 4096 字符。 |
typescriptcreateRoom(channelType: V2NIMSignallingChannelType,
channelName?: string,
channelExtension?: string): Promise<V2NIMSignallingChannelInfo>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
channelType |
V2NIMSignallingChannelType | 是 | - | 频道类型。可选择音频、视频或自定义频道。 房间创建后与频道类型绑定。 |
channelName |
string | 否 | - | 频道名称。 建议使用与业务有相关场景的名称,便于页面显示。 |
channelExtension |
string | 否 | - | 频道相关扩展字段,JSON 格式,长度最大为 4096 字符。 |
示例代码
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
}
});
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
}];
cppsignallingService.createRoom(
V2NIM_SIGNALLING_CHANNEL_TYPE_AUDIO,
"channelName",
"{\"key\":\"value\"}",
[](const V2NIMSignallingChannelInfo& result) {
// create room success
},
[](V2NIMError error) {
// create room failed, handle error
});
typescriptconst result:V2NIMSignallingChannelInfo = await nimsdk.signallingService.createRoom(this.channelType,
this.channelName, this.channelExt)
typescriptconst result:V2NIMSignallingChannelInfo = await nimsdk.signallingService.createRoom(this.channelType,
this.channelName, this.channelExt)
返回值
无返回值
Promise<V2NIMSignallingChannelInfo>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含V2NIMSignallingChannelInfo
结果。 - 请求失败,返回
V2NIMFailuerCallback
回调,包含信令相关错误码。
- 请求成功,返回
V2NIMSignallingCreateRoomSuccess
回调,可自定义。 - 请求失败,返回
V2NIMFailuerCallback
回调,包含信令相关错误码。
无
closeRoom
接口描述
关闭信令频道房间。
房间内的所有人都可以关闭信令频道房间。关闭后,房间内的所有人都会收到房间被关闭的通知。
如果房间内的用户都没有主动关闭信令频道房间,那么服务器默认在会 2 小时后销毁该信令频道房间(2 小时内没有新用户加入房间,如有,从加入后再开始计算)。
参数说明
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 | 是 | - | 关闭失败回调,返回 错误码。 |
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 | 是 | - | 关闭失败回调,返回 错误码。 |
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 | 是 | - | 关闭失败回调,返回 错误码。 |
typescriptcloseRoom(channelId: string, offlineEnabled?: boolean, serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
channelId |
string | 是 | - | 频道 ID,房间的唯一标识。 |
offlineEnabled |
boolean | 否 | false | 是否需要存离线消息。默认为 false,即不存。如果设置为 true,存离线,则用户离线状态下再次上线会收到通知消息。 |
serverExtension |
string | 否 | - | 服务端扩展字段,JSON 格式,长度最大为 4096 字符。 |
typescriptcloseRoom(channelId: string, offlineEnabled?: boolean, serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
channelId |
string | 是 | - | 频道 ID,房间的唯一标识。 |
offlineEnabled |
boolean | 否 | false | 是否需要存离线消息。默认为 false,即不存。如果设置为 true,存离线,则用户离线状态下再次上线会收到通知消息。 |
serverExtension |
string | 否 | - | 服务端扩展字段,JSON 格式,长度最大为 4096 字符。 |
示例代码
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
}
});
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
}];
cppsignallingService.closeRoom(
"channelId",
true,
"{\"key\":\"value\"}",
[]() {
// close room success
},
[](V2NIMError error) {
// close room failed, handle error
});
typescriptconst channelId = 'XXX_Id'
const offlineEnabled = false
const serverExtension = ''
await nimsdk.signallingService.closeRoom(channelId, offlineEnabled, serverExtension)
typescriptconst channelId = 'XXX_Id'
const offlineEnabled = false
const serverExtension = ''
await nimsdk.signallingService.closeRoom(channelId, offlineEnabled, serverExtension)
返回值
无返回值
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。 - 请求失败,返回
V2NIMFailuerCallback
回调,包含信令相关错误码。
无
joinRoom
接口描述
加入信令频道房间。加入房间后,房间内的所有人都会收到通知。
参数说明
javavoid joinRoom(V2NIMSignallingJoinParams params, V2NIMSuccessCallback<V2NIMSignallingRoomInfo> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingJoinParams | 是 | - | 加入频道房间的配置参数。 |
success |
V2NIMSuccessCallback<V2NIMSignallingRoomInfo> | 是 | - | 加入成功回调,包含 V2NIMSignallingRoomInfo 。 |
failure |
V2NIMFailureCallback | 是 | - | 加入失败回调,返回 错误码。 |
objective-c- (void)joinRoom:(V2NIMSignallingJoinParams *)param
success:(V2NIMSignallingJoinRoomSuccess)success
failure:(V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
param |
V2NIMSignallingJoinParams | 是 | - | 加入频道房间的配置参数。 |
success |
V2NIMSignallingJoinRoomSuccess |
是 | - | 加入成功回调,可自定义。 |
failure |
V2NIMFailureCallback | 是 | - | 加入失败回调,返回 错误码。 |
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 | 是 | - | 加入失败回调,返回 错误码。 |
typescriptjoinRoom(params: V2NIMSignallingJoinParams): Promise<V2NIMSignallingRoomInfo>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingJoinParams | 是 | - | 加入频道房间的配置参数。 |
typescriptjoinRoom(params: V2NIMSignallingJoinParams): Promise<V2NIMSignallingRoomInfo>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingJoinParams | 是 | - | 加入频道房间的配置参数。 |
示例代码
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
}
});
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
}];
cppV2NIMSignallingJoinParams joinParameter;
joinParams.channelId = "channelId";
signallingService.joinRoom(
joinParameter,
[](const V2NIMSignallingChannelInfo& result) {
// join room success
},
[](V2NIMError error) {
// join room failed, handle error
});
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)
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)
返回值
无返回值
Promise<V2NIMSignallingRoomInfo>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,结果包含V2NIMSignallingRoomInfo
。 - 请求失败,返回
V2NIMFailuerCallback
回调,包含信令相关错误码。
- 请求成功,返回
V2NIMSignallingJoinRoomSuccess
回调,可自定义。 - 请求失败,返回
V2NIMFailuerCallback
回调,包含信令相关错误码。
无
leaveRoom
接口描述
离开信令频道房间。离开房间后,房间内的所有人都会收到通知。
参数说明
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 | 是 | - | 离开失败回调,返回 错误码。 |
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 | 是 | - | 离开失败回调,返回 错误码。 |
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 | 是 | - | 离开失败回调,返回 错误码。 |
typescriptleaveRoom(channelId: string, offlineEnabled?: boolean, serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
channelId |
string | 是 | - | 频道 ID,房间的唯一标识。 |
offlineEnabled |
boolean | 否 | false | 是否需要存离线消息。默认为 false,即不存。如果设置为 true,存离线,则用户离线状态下再次上线会收到通知消息。 |
serverExtension |
string | 否 | - | 服务端扩展字段,JSON 格式,长度最大为 4096 字符。 |
typescriptleaveRoom(channelId: string, offlineEnabled?: boolean, serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
channelId |
string | 是 | - | 频道 ID,房间的唯一标识。 |
offlineEnabled |
boolean | 否 | false | 是否需要存离线消息。默认为 false,即不存。如果设置为 true,存离线,则用户离线状态下再次上线会收到通知消息。 |
serverExtension |
string | 否 | - | 服务端扩展字段,JSON 格式,长度最大为 4096 字符。 |
示例代码
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
}
});
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
}];
cppsignallingService.leaveRoom(
"channelId",
true,
"{\"key\":\"value\"}",
[]() {
// leave room success
},
[](V2NIMError error) {
// leave room failed, handle error
});
typescriptawait nimsdk.signallingService.leaveRoom(this.channelId, this.offlineEnabled, this.serverExtension)
typescriptawait nimsdk.signallingService.leaveRoom(this.channelId, this.offlineEnabled, this.serverExtension)
返回值
无返回值
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。 - 请求失败,返回
V2NIMFailuerCallback
回调,包含信令相关错误码。
无
invite
接口描述
邀请成员加入信令频道房间。房间内的所有人都能邀请他人进入房间。
发出邀请后,被邀请者会收到通知。
邀请方在邀请时可以配置是否向被邀请方发送推送消息,默认不推送。如果选择推送,但未配置推送相关信息,则服务器将默认发送以下信息:
- 房间频道类型为音频:xx邀请你进行语音通话
- 房间频道类型为视频:xx邀请你进行视频通话
- 房间频道类型为自定义 xx邀请你进行音视频通话
参数说明
javavoid invite(V2NIMSignallingInviteParams params, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingInviteParams | 是 | - | 邀请入房的配置参数。 |
success |
V2NIMSuccessCallback | 是 | - | 邀请成功回调。 |
failure |
V2NIMFailureCallback | 是 | - | 邀请失败回调,返回 错误码。 |
objective-c- (void)invite:(V2NIMSignallingInviteParams *)param
success:(V2NIMSuccessCallback)success
failure:(V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
param |
V2NIMSignallingInviteParams | 是 | - | 邀请入房的配置参数。 |
success |
V2NIMSuccessCallback | 是 | - | 邀请成功回调。 |
failure |
V2NIMFailureCallback | 是 | - | 邀请失败回调,返回 错误码。 |
cppvirtual void v2::V2NIMSignallingService::invite ( const V2NIMSignallingInviteParams & params,
const V2NIMSuccessCallback< void > & success,
const V2NIMFailureCallback & failure )
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingInviteParams | 是 | - | 邀请入房的配置参数。 |
success |
V2NIMSuccessCallback | 是 | - | 邀请成功回调。 |
failure |
V2NIMFailureCallback | 是 | - | 邀请失败回调,返回 错误码。 |
typescriptinvite(params: V2NIMSignallingInviteParams): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingInviteParams | 是 | - | 邀请入房的配置参数。 |
typescriptinvite(params: V2NIMSignallingInviteParams): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingInviteParams | 是 | - | 邀请入房的配置参数。 |
示例代码
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) {
}
});
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
}];
cppV2NIMSignallingInviteParams inviteParameter;
inviteParameter.channelId = "channelId";
inviteParameter.accountId = "accountId";
inviteParameter.requestId = "request UUID";
signallingService.invite(
inviteParameter,
[]() {
// invite success
},
[](V2NIMError error) {
// invite failed, handle error
});
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)
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)
返回值
无返回值
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。 - 请求失败,返回
V2NIMFailuerCallback
回调,包含信令相关错误码。
无
cancelInvite
接口描述
取消已发出的进房邀请。
房间内的用户邀请他人进入信令频道房间后,可以取消已发出的进房邀请。取消后,被邀请的用户会收到取消邀请的通知。
只能取消自己发出的邀请,无法影响房间内其他用户发出的邀请。
参数说明
javavoid cancelInvite(V2NIMSignallingCancelInviteParams params, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure)
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingCancelInviteParams | 是 | - | 取消邀请的配置参数。 |
success |
V2NIMSuccessCallback | 是 | - | 取消成功回调。 |
failure |
V2NIMFailureCallback | 是 | - | 取消失败回调,返回 错误码。 |
objective-c- (void)cancelInvite:(V2NIMSignallingCancelInviteParams*)param
success:(V2NIMSuccessCallback)success
failure:(V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
param |
V2NIMSignallingCancelInviteParams | 是 | - | 取消邀请的配置参数。 |
success |
V2NIMSuccessCallback | 是 | - | 取消成功回调。 |
failure |
V2NIMFailureCallback | 是 | - | 取消失败回调,返回 错误码。 |
cppvirtual void v2::V2NIMSignallingService::cancelInvite ( const V2NIMSignallingCancelInviteParams & params,
const V2NIMSuccessCallback< void > & success,
const V2NIMFailureCallback & failure )
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingCancelInviteParams | 是 | - | 取消邀请的配置参数。 |
success |
V2NIMSuccessCallback | 是 | - | 取消成功回调。 |
failure |
V2NIMFailureCallback | 是 | - | 取消失败回调,返回 错误码。 |
typescriptcancelInvite(params: V2NIMSignallingCancelInviteParams): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingCancelInviteParams | 是 | - | 取消邀请的配置参数。 |
typescriptcancelInvite(params: V2NIMSignallingCancelInviteParams): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingCancelInviteParams | 是 | - | 取消邀请的配置参数。 |
示例代码
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) {
}
});
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
}];
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
});
typescriptconst params: V2NIMSignallingCancelInviteParams = {
channelId: this.channelId,
inviteeAccountId: this.inviteeAccountId,
requestId: this.requestId,
serverExtension: this.serverExtension,
offlineEnabled: this.offlineEnabled
}
await nimsdk.signallingService.cancelInvite(params)
typescriptconst params: V2NIMSignallingCancelInviteParams = {
channelId: this.channelId,
inviteeAccountId: this.inviteeAccountId,
requestId: this.requestId,
serverExtension: this.serverExtension,
offlineEnabled: this.offlineEnabled
}
await nimsdk.signallingService.cancelInvite(params)
返回值
无返回值
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。 - 请求失败,返回
V2NIMFailuerCallback
回调,包含信令相关错误码。
无
rejectInvite
接口描述
拒绝他人邀请入房的请求,即拒绝加入信令频道房间。拒绝后,邀请人会收到被拒绝的通知。
参数说明
javavoid rejectInvite(V2NIMSignallingRejectInviteParams params, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingRejectInviteParams | 是 | - | 拒绝邀请的配置参数。 |
success |
V2NIMSuccessCallback | 是 | - | 拒绝成功回调。 |
failure |
V2NIMFailureCallback | 是 | - | 拒绝失败回调,返回 错误码。 |
objective-c- (void)rejectInvite:(V2NIMSignallingRejectInviteParams*)param
success:(V2NIMSuccessCallback)success
failure:(V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
param |
V2NIMSignallingRejectInviteParams | 是 | - | 拒绝邀请的配置参数。 |
success |
V2NIMSuccessCallback | 是 | - | 拒绝成功回调。 |
failure |
V2NIMFailureCallback | 是 | - | 拒绝失败回调,返回 错误码。 |
cppvirtual void v2::V2NIMSignallingService::rejectInvite ( const V2NIMSignallingRejectInviteParams & params,
const V2NIMSuccessCallback< void > & success,
const V2NIMFailureCallback & failure )
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingRejectInviteParams | 是 | - | 拒绝邀请的配置参数。 |
success |
V2NIMSuccessCallback | 是 | - | 拒绝成功回调。 |
failure |
V2NIMFailureCallback | 是 | - | 拒绝失败回调,返回 错误码。 |
typescriptrejectInvite(params: V2NIMSignallingRejectInviteParams): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingRejectInviteParams | 是 | - | 拒绝邀请的配置参数。 |
typescriptrejectInvite(params: V2NIMSignallingRejectInviteParams): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingRejectInviteParams | 是 | - | 拒绝邀请的配置参数。 |
示例代码
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) {
}
});
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
}];
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
});
typescriptconst params: V2NIMSignallingRejectInviteParams = {
channelId: this.channelId,
inviterAccountId: this.inviterAccountId,
requestId: this.requestId,
serverExtension: this.serverExtension,
offlineEnabled: this.offlineEnabled
}
await nimsdk.signallingService.rejectInvite(params)
typescriptconst params: V2NIMSignallingRejectInviteParams = {
channelId: this.channelId,
inviterAccountId: this.inviterAccountId,
requestId: this.requestId,
serverExtension: this.serverExtension,
offlineEnabled: this.offlineEnabled
}
await nimsdk.signallingService.rejectInvite(params)
返回值
无返回值
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。 - 请求失败,返回
V2NIMFailuerCallback
回调,包含信令相关错误码。
无
acceptInvite
接口描述
接受他人邀请入房的请求,即加入信令频道房间。接受后,邀请人会收到接受邀请的通知。
参数说明
javavoid acceptInvite(V2NIMSignallingAcceptInviteParams params, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingAcceptInviteParams | 是 | - | 接受邀请的配置参数。 |
success |
V2NIMSuccessCallback | 是 | - | 接受成功回调。 |
failure |
V2NIMFailureCallback | 是 | - | 接受失败回调,返回 错误码。 |
objective-c- (void)acceptInvite:(V2NIMSignallingAcceptInviteParams*)param
success:(V2NIMSuccessCallback)success
failure:(V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
param |
V2NIMSignallingAcceptInviteParams | 是 | - | 接受邀请的配置参数。 |
success |
V2NIMSuccessCallback | 是 | - | 接受成功回调。 |
failure |
V2NIMFailureCallback | 是 | - | 接受失败回调,返回 错误码。 |
cppvirtual void v2::V2NIMSignallingService::acceptInvite ( const V2NIMSignallingAcceptInviteParams & params,
const V2NIMSuccessCallback< void > & success,
const V2NIMFailureCallback & failure )
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingAcceptInviteParams | 是 | - | 接受邀请的配置参数。 |
success |
V2NIMSuccessCallback | 是 | - | 接受成功回调。 |
failure |
V2NIMFailureCallback | 是 | - | 接受失败回调,返回 错误码。 |
typescriptacceptInvite(params: V2NIMSignallingAcceptInviteParams): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingAcceptInviteParams | 是 | - | 接受邀请的配置参数。 |
typescriptacceptInvite(params: V2NIMSignallingAcceptInviteParams): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMSignallingAcceptInviteParams | 是 | - | 接受邀请的配置参数。 |
示例代码
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) {
}
});
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
}];
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
});
typescriptconst params: V2NIMSignallingAcceptInviteParams = {
channelId: this.channelId,
inviterAccountId: this.inviterAccountId,
requestId: this.requestId,
serverExtension: this.serverExtension,
offlineEnabled: this.offlineEnabled
}
await nimsdk.signallingService.acceptInvite(params)
typescriptconst params: V2NIMSignallingAcceptInviteParams = {
channelId: this.channelId,
inviterAccountId: this.inviterAccountId,
requestId: this.requestId,
serverExtension: this.serverExtension,
offlineEnabled: this.offlineEnabled
}
await nimsdk.signallingService.acceptInvite(params)
返回值
无返回值
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。 - 请求失败,返回
V2NIMFailuerCallback
回调,包含信令相关错误码。
无
sendControl
接口描述
发送自定义控制信令,用于实现自定义相关的业务逻辑。
发送时可以指定接收用户,如果不指定,则默认发送给频道房间内的所有人。发送成功后,服务器会给在线的接收者发送一个控制通知。
非房间内的用户也可以调用该接口,但是接收者必须在频道房间内,或者接收者是频道房间创建者。
参数说明
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 | 是 | - | 发送失败回调,返回 错误码。 |
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 | 是 | - | 发送失败回调,返回 错误码。 |
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 | 是 | - | 发送失败回调,返回 错误码。 |
typescriptsendControl(channelId: string, receiverAccountId?: string, serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
channelId |
string | 是 | - | 频道 ID,房间的唯一标识。 |
receiverAccountId |
string | 否 | 默认发送给房间内的所有人 | 接收者账号 ID。 |
serverExtension |
string | 否 | - | 服务端扩展字段,可通过该字段自定义控制数据,JSON 格式,长度最大为 4096 字符。 |
typescriptsendControl(channelId: string, receiverAccountId?: string, serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
channelId |
string | 是 | - | 频道 ID,房间的唯一标识。 |
receiverAccountId |
string | 否 | 默认发送给房间内的所有人 | 接收者账号 ID。 |
serverExtension |
string | 否 | - | 服务端扩展字段,可通过该字段自定义控制数据,JSON 格式,长度最大为 4096 字符。 |
示例代码
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) {
}
});
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
}];
cppsignallingService.sendControl(
"channelId",
"receiverAccountId",
"{\"key\":\"value\"}",
[]() {
// send control success
},
[](V2NIMError error) {
// send control failed, handle error
});
typescriptawait nimsdk.signallingService.sendControl(this.channelId, this.receiverAccountId, this.serverExtension)
typescriptawait nimsdk.signallingService.sendControl(this.channelId, this.receiverAccountId, this.serverExtension)
返回值
无返回值
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。 - 请求失败,返回
V2NIMFailuerCallback
回调,包含信令相关错误码。
无
getRoomInfoByChannelName
接口描述
根据频道名称查询频道房间信息。
参数说明
javavoid getRoomInfoByChannelName(String channelName, V2NIMSuccessCallback<V2NIMSignallingRoomInfo> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
channelName |
String | 是 | - | 频道名称,在服务器中具有唯一性。 |
success |
V2NIMSuccessCallback<V2NIMSignallingRoomInfo> | 是 | - | 查询成功回调,返回 V2NIMSignallingRoomInfo 。 |
failure |
V2NIMFailureCallback | 是 | - | 查询失败回调,返回 错误码。 |
objective-c- (void)getRoomInfoByChannelName:(NSString *)channelName
success:(V2NIMSignallingGetRoomInfoByChannelNameSuccess)success
failure:(V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
channelName |
NSString | 是 | - | 频道名称,在服务器中具有唯一性。 |
success |
V2NIMSignallingGetRoomInfoByChannelNameSuccess |
是 | - | 查询成功回调,可自定义。 |
failure |
V2NIMFailureCallback | 是 | - | 查询失败回调,返回 错误码。 |
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 | 是 | - | 查询失败回调,返回 错误码。 |
typescriptgetRoomInfoByChannelName(channelName: string): Promise<V2NIMSignallingRoomInfo>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
channelName |
string | 是 | - | 频道名称,在服务器中具有唯一性。 |
typescriptgetRoomInfoByChannelName(channelName: string): Promise<V2NIMSignallingRoomInfo>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
channelName |
string | 是 | - | 频道名称,在服务器中具有唯一性。 |
示例代码
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
}
});
objective-cNSString * channelName = @"Channel Name";
[[NIMSDK sharedSDK].v2SignallingService getRoomInfoByChannelName:channelName success:^(V2NIMSignallingRoomInfo *result) {
// Your Code
} failure:^(V2NIMError *error) {
// Your Code
}];
cppsignallingService.getRoomInfoByChannelName(
"channelName",
[](const V2NIMSignallingRoomInfo& result) {
// get room info success
},
[](V2NIMError error) {
// get room info failed, handle error
});
typescriptconst result = await nim.V2NIMSignallingService.getRoomInfoByChannelName("YOUR_CHANNEL_NAME")
typescriptconst result:V2NIMSignallingRoomResult = await nimsdk.signallingService.getRoomInfoByChannelName(this.channelName)
返回值
无返回值
Promise<V2NIMSignallingRoomInfo>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含V2NIMSignallingRoomInfo
。 - 请求失败,返回
V2NIMFailuerCallback
回调,包含信令相关错误码。
- 请求成功,返回
V2NIMSignallingGetRoomInfoByChannelNameSuccess
回调,可自定义。 - 请求失败,返回
V2NIMFailuerCallback
回调,包含信令相关错误码。
无
类/枚举
以下介绍信令相关的类和枚举信息。
V2NIMSignallingCallParams
直接呼叫的配置参数。
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;
}
}
}
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
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;
};
typescriptexport type V2NIMSignallingCallParams = {
calleeAccountId: string
requestId: string
channelType: V2NIMSignallingChannelType
channelName?: string
channelExtension?: string
serverExtension?: string
signallingConfig?: V2NIMSignallingConfig
pushConfig?: V2NIMSignallingPushConfig
rtcConfig?: V2NIMSignallingRtcConfig
}
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 实现。 |
channelType |
V2NIMSignallingChannelType | 是 | - | 频道类型。可选择音频、视频或自定义频道。 房间创建后与频道类型绑定。 |
channelName |
string | 否 | - | 频道名称。 建议使用与业务有相关场景的名称,便于页面显示。 |
channelExtension |
string | 否 | - | 频道相关扩展字段,JSON 格式,长度最大为 4096 字符。 |
serverExtension |
string | 否 | - | 服务端扩展字段,JSON 格式,长度最大为 4096 字符。 |
signallingConfig |
V2NIMSignallingConfig | 否 | - | 信令相关配置项。 |
pushConfig |
V2NIMSignallingPushConfig | 否 | - | 推送相关配置项。 |
rtcConfig |
V2NIMSignallingRtcConfig | 否 | - | 音视频相关配置项。 |
V2NIMSignallingConfig
信令相关配置参数。
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();
}
}
objective-c@interface V2NIMSignallingConfig : NSObject
@property (nonatomic,assign) BOOL offlineEnabled;
@property (nonatomic,assign) BOOL unreadEnabled;
@property (nonatomic,assign) NSInteger selfUid;
@end
cppstruct V2NIMSignallingConfig {
nstd::optional<bool> offlineEnabled;
nstd::optional<bool> unreadEnabled;
nstd::optional<int64_t> selfUid;
};
typescriptexport type V2NIMSignallingConfig = {
offlineEnabled?: boolean
unreadEnabled?: boolean
selfUid?: number
}
typescriptexport interface V2NIMSignallingConfig{
offlineEnabled?: boolean
unreadEnabled?: boolean
selfUid?: number
}
成员参数
名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
offlineEnabled |
boolean | 否 | true | 是否需要存离线消息。默认为 true,即存离线,当用户离线状态下再次上线会收到通知消息。 |
unreadEnabled |
boolean | 否 | true | 是否需要计未读数。默认为 true,需要。 |
selfUid |
long | 否 | - | 用户 uid(音视频的用户账号 ID)。 |
V2NIMSignallingPushConfig
推送相关配置参数。
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();
}
}
}
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
cppstruct V2NIMSignallingPushConfig {
bool pushEnabled{false};
nstd::optional<nstd::string> pushTitle;
nstd::optional<nstd::string> pushContent;
nstd::optional<nstd::string> pushPayload;
};
typescriptexport type V2NIMSignallingPushConfig = {
pushEnabled?: boolean
pushTitle?: string
pushContent?: string
pushPayload?: string
}
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
音视频相关配置参数。
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();
}
}
objective-c@interface V2NIMSignallingRtcConfig : NSObject
@property (nonatomic,copy,nullable) NSString *rtcChannelName;
@property (nonatomic,assign) long rtcTokenTtl;
@property (nonatomic,copy,nullable) NSString *rtcParams;
@end
cppstruct V2NIMSignallingRtcConfig {
nstd::optional<nstd::string> rtcChannelName;
nstd::optional<uint32_t> rtcTokenTtl;
nstd::optional<nstd::string> rtcParams;
};
typescriptexport type V2NIMSignallingRtcConfig = {
rtcChannelName?: string
rtcTokenTtl?: number
rtcParams?: string
}
typescriptexport interface V2NIMSignallingRtcConfig {
rtcChannelName?: string
rtcTokenTtl?: number
rtcParams?: string
}
成员参数
名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
rtcChannelName |
string | 否 | - | 云信音视频房间频道的名称。 |
rtcTokenTtl |
long | 否 | 10*60(十分钟) | 音视频房间 token 的过期时间,单位为 s(秒)。 |
rtcParams |
string | 否 | - | 音视频 SDK 相关参数,JSON 格式。。 |
V2NIMSignallingCallResult
呼叫回包,即调用呼叫接口成功的返回结果。
javapublic interface V2NIMSignallingCallResult {
V2NIMSignallingRoomInfo getRoomInfo();
V2NIMSignallingRtcInfo getRtcInfo();
int getCallStatus();
}
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
cppstruct V2NIMSignallingCallResult {
V2NIMSignallingRoomInfo roomInfo;
nstd::optional<V2NIMSignallingRtcInfo> rtcInfo;
int32_t callStatus{0};
};
typescriptexport type V2NIMSignallingCallResult = {
roomInfo: V2NIMSignallingRoomInfo
rtcInfo?: V2NIMSignallingRtcInfo
callStatus?: number
}
typescriptexport interface V2NIMSignallingCallResult {
roomInfo: V2NIMSignallingRoomInfo
rtcInfo?: V2NIMSignallingRtcInfo
callStatus?: number
}
成员参数
名称 | 类型 | 是否必返回 | 是否只读 | 描述 |
---|---|---|---|---|
roomInfo |
V2NIMSignallingRoomInfo | 是 | 是 | 频道房间的相关信息。 |
rtcInfo |
V2NIMSignallingRtcInfo | 否 | 是 | 音视频房间的相关信息。 |
callStatus |
number | 否 | 是 | 呼叫状态。 |
V2NIMSignallingChannelInfo
信令频道信息。
javapublic interface V2NIMSignallingChannelInfo {
String getChannelName();
String getChannelId();
V2NIMSignallingChannelType getChannelType();
String getChannelExtension();
long getCreateTime();
long getExpireTime();
String getCreatorAccountId();
}
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
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;
};
typescriptexport type V2NIMSignallingChannelInfo = {
channelName?: string
channelId: string
channelType: V2NIMSignallingChannelType
channelExtension?: string
createTime: number
expireTime: number
creatorAccountId: string
}
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 信息。
- 如果未传入,则不返回。
javapublic interface V2NIMSignallingRtcInfo {
String getRtcToken();
Long getRtcTokenTtl();
String getRtcParams();
}
objective-c@interface V2NIMSignallingRtcInfo : NSObject
@property (nonatomic, copy, nullable) NSString *rtcToken;
@property (nonatomic, assign) long rtcTokenTtl;
@property (nonatomic, copy, nullable) NSString *rtcParams;
@end
cppstruct V2NIMSignallingRtcInfo {
nstd::optional<nstd::string> rtcToken;
nstd::optional<uint32_t> rtcTokenTtl;
nstd::optional<nstd::string> rtcParams;
};
typescriptexport type V2NIMSignallingRtcInfo = {
rtcToken?: string
rtcTokenTtl?: number
rtcParams?: string
}
typescriptexport interface V2NIMSignallingRtcInfo {
rtcToken?: string
rtcTokenTtl?: number
rtcParams?: string,
}
成员参数
名称 | 类型 | 是否必返回 | 描述 |
---|---|---|---|
rtcToken |
string | 否 | 进入音视频房间对应的 Token。 |
rtcTokenTtl |
number | 否 | 音视频房间 Token 的过期时间。 |
rtcParams |
string | 否 | 频道类型,房间创建后与频道类型绑定。 |
channelExtension |
string | 否 | 音视频 SDK 相关参数, IM 信令仅透传相关参数。 |
V2NIMSignallingCallSetupParams
呼叫建立的配置参数。包含接收方接入的信令频道房间信息和音视频房间相关信息。
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;
}
}
}
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
cppstruct V2NIMSignallingCallSetupParams {
nstd::string channelId;
nstd::string callerAccountId;
nstd::string requestId;
nstd::optional<nstd::string> serverExtension;
nstd::optional<V2NIMSignallingConfig> signallingConfig;
nstd::optional<V2NIMSignallingRtcConfig> rtcConfig;
};
typescriptexport type V2NIMSignallingCallSetupParams = {
channelId: string
callerAccountId: string
requestId: string
serverExtension?: string
signallingConfig?: V2NIMSignallingConfig
rtcConfig?: V2NIMSignallingRtcConfig
}
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 实现。 |
serverExtension |
string | 否 | - | 服务端扩展字段,JSON 格式,长度最大为 4096 字符。 |
signallingConfig |
V2NIMSignallingConfig | 否 | - | 信令相关配置项(未读配置字段 unreadEnabled 在接受场景无效)。 |
rtcConfig |
V2NIMSignallingRtcConfig | 否 | - | 音视频相关配置项。 |
V2NIMSignallingCallSetupResult
接受呼叫请求的回包,即调用建立呼叫接口成功的返回结果。
javapublic interface V2NIMSignallingCallSetupResult {
V2NIMSignallingRoomInfo getRoomInfo();
V2NIMSignallingRtcInfo getRtcInfo();
int getCallStatus();
}
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
cppstruct V2NIMSignallingCallSetupResult {
V2NIMSignallingRoomInfo roomInfo;
nstd::optional<V2NIMSignallingRtcInfo> rtcInfo;
nstd::optional<uint32_t> callStatus;
};
typescriptexport type V2NIMSignallingCallSetupResult = {
roomInfo: V2NIMSignallingRoomInfo
rtcInfo?: V2NIMSignallingRtcInfo
callStatus?: number
}
typescriptexport interface V2NIMSignallingCallSetupResult {
roomInfo: V2NIMSignallingRoomInfo
rtcInfo?: V2NIMSignallingRtcInfo
callStatus?: number
}
成员参数
名称 | 类型 | 是否必返回 | 是否只读 | 描述 |
---|---|---|---|---|
roomInfo |
V2NIMSignallingRoomInfo | 是 | 是 | 频道房间的相关信息。 |
rtcInfo |
V2NIMSignallingRtcInfo | 否 | 是 | 音视频房间的相关信息。 |
callStatus |
number | 否 | 是 | 呼叫状态。 |
V2NIMSignallingMember
信令频道房间成员信息。
javapublic interface V2NIMSignallingMember {
String getAccountId();
long getUid();
long getJoinTime();
long getExpireTime();
String getDeviceId();
}
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
cppstruct V2NIMSignallingMember {
nstd::string accountId;
int64_t uid{0};
time_t joinTime{0};
time_t expireTime{0};
nstd::string deviceId;
};
typescriptexport type V2NIMSignallingMember = {
accountId: string
uid: number
joinTime: number
expireTime: number
deviceId: string
}
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
信令频道房间成员信息。
javapublic interface V2NIMSignallingRoomInfo {
V2NIMSignallingChannelInfo getChannelInfo();
List<V2NIMSignallingMember> getMembers();
}
objective-c@interface V2NIMSignallingRoomInfo : NSObject
@property (nonatomic, strong, readonly) V2NIMSignallingChannelInfo *channelInfo;
@property (nonatomic, strong, readonly) NSArray<V2NIMSignallingMember *> *members;
@end
cppstruct V2NIMSignallingRoomInfo {
V2NIMSignallingChannelInfo channelInfo;
nstd::vector<V2NIMSignallingMember> members;
};
typescriptexport type V2NIMSignallingRoomInfo = {
channelInfo: V2NIMSignallingChannelInfo
members: V2NIMSignallingMember[]
}
typescriptexport interface V2NIMSignallingRoomInfo {
channelInfo: V2NIMSignallingChannelInfo
members: V2NIMSignallingMember[]
}
成员参数
名称 | 类型 | 是否必返回 | 是否只读 | 描述 |
---|---|---|---|---|
channelInfo |
V2NIMSignallingChannelInfo | 是 | 是 | 信令频道房间的相关信息(其中频道房间的国企时间会根据时间进行更新调整)。 |
members |
List<V2NIMSignallingMember> | 是 | 是 | 成员列表信息。 |
V2NIMSignallingJoinParams
加入信令频道房间的配置参数。
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;
}
}
}
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
cppstruct V2NIMSignallingJoinParams {
nstd::string channelId;
nstd::optional<nstd::string> serverExtension;
nstd::optional<V2NIMSignallingConfig> signallingConfig;
nstd::optional<V2NIMSignallingRtcConfig> rtcConfig;
};
typescriptexport type V2NIMSignallingJoinParams = {
channelId: string
serverExtension?: string
signallingConfig?: V2NIMSignallingConfig
rtcConfig?: V2NIMSignallingRtcConfig
}
typescriptexport interface V2NIMSignallingJoinParams {
channelId: string
serverExtension?: string
signallingConfig?: V2NIMSignallingConfig
rtcConfig?: V2NIMSignallingRtcConfig
}
成员参数
名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
channelId |
string | 是 | - | 信令频道 ID。 |
serverExtension |
string | 否 | - | 服务端扩展字段,JSON 格式,长度最大为 4096 字符。 |
signallingConfig |
V2NIMSignallingConfig | 否 | - | 信令相关配置项。 |
rtcConfig |
V2NIMSignallingRtcConfig | 否 | - | 音视频相关配置项。 |
V2NIMSignallingInviteParams
邀请成员加入信令频道房间的配置参数。
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;
}
}
}
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
cppstruct V2NIMSignallingInviteParams {
nstd::string channelId;
nstd::string inviteeAccountId;
nstd::string requestId;
nstd::optional<nstd::string> serverExtension;
nstd::optional<V2NIMSignallingConfig> signallingConfig;
nstd::optional<V2NIMSignallingPushConfig> pushConfig;
};
typescriptexport type V2NIMSignallingInviteParams = {
channelId: string
inviteeAccountId: string
requestId: string
serverExtension?: string
signallingConfig?: V2NIMSignallingConfig
pushConfig?: V2NIMSignallingPushConfig
}
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 实现。 |
serverExtension |
string | 否 | - | 服务端扩展字段,JSON 格式,长度最大为 4096 字符。 |
signallingConfig |
V2NIMSignallingConfig | 否 | - | 信令相关配置项(其中 selfUid 字段在此场景中无效)。 |
pushConfig |
V2NIMSignallingPushConfig | 否 | - | 推送相关配置项。 |
V2NIMSignallingCancelInviteParams
取消邀请成员加入信令频道房间请求的配置参数。
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;
}
}
}
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
cppstruct V2NIMSignallingCancelInviteParams {
nstd::string channelId;
nstd::string inviteeAccountId;
nstd::string requestId;
nstd::optional<nstd::string> serverExtension;
nstd::optional<bool> offlineEnabled;
};
typescriptexport type V2NIMSignallingCancelInviteParams = {
channelId: string
inviteeAccountId: string
requestId: string
serverExtension?: string
offlineEnabled?: boolean
}
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 实现。 |
serverExtension |
string | 否 | - | 服务端扩展字段,JSON 格式,长度最大为 4096 字符。 |
offlineEnabled |
boolean | 否 | true | 是否需要存离线消息。默认为 true,即存离线,当用户离线状态下再次上线会收到通知消息。 |
V2NIMSignallingRejectInviteParams
拒绝加入频道房间邀请的配置参数。
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;
}
}
}
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
cppstruct V2NIMSignallingRejectInviteParams {
nstd::string channelId;
nstd::string inviterAccountId;
nstd::string requestId;
nstd::optional<nstd::string> serverExtension;
nstd::optional<bool> offlineEnabled;
};
typescriptexport type V2NIMSignallingRejectInviteParams = {
channelId: string
inviterAccountId: string
requestId: string
serverExtension?: string
offlineEnabled?: boolean
}
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 实现。 |
serverExtension |
string | 否 | - | 服务端扩展字段,JSON 格式,长度最大为 4096 字符。 |
offlineEnabled |
boolean | 否 | true | 是否需要存离线消息。默认为 true,即存离线,当用户离线状态下再次上线会收到通知消息。 |
V2NIMSignallingAcceptInviteParams
接受加入频道房间邀请的配置参数。
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;
}
}
}
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
cppstruct V2NIMSignallingAcceptInviteParams {
nstd::string channelId;
nstd::string inviterAccountId;
nstd::string requestId;
nstd::optional<nstd::string> serverExtension;
nstd::optional<bool> offlineEnabled;
};
typescriptexport type V2NIMSignallingAcceptInviteParams = {
channelId: string
inviterAccountId: string
requestId: string
serverExtension?: string
offlineEnabled?: boolean
}
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 实现。 |
serverExtension |
string | 否 | - | 服务端扩展字段,JSON 格式,长度最大为 4096 字符。 |
offlineEnabled |
boolean | 否 | true | 是否需要存离线消息。默认为 true,即存离线,当用户离线状态下再次上线会收到通知消息。 |
V2NIMSignallingEvent
信令事件信息。
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();
}
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
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;
};
typescriptexport type V2NIMSignallingEvent = {
eventType: V2NIMSignallingEventType
channelInfo: V2NIMSignallingChannelInfo
operatorAccountId: string
time: number
inviteeAccountId?: string
inviterAccountId?: string
requestId?: string
pushConfig?: V2NIMSignallingPushConfig
unreadEnabled?: boolean
member?: V2NIMSignallingMember
}
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
信令相关监听器。
javapublic interface V2NIMSignallingListener {
void onOnlineEvent(V2NIMSignallingEvent event);
void onOfflineEvent(List<V2NIMSignallingEvent> events);
void onMultiClientEvent(V2NIMSignallingEvent event);
void onSyncRoomInfoList(List<V2NIMSignallingRoomInfo> channelRooms);
}
objective-c@protocol V2NIMSignallingListener <NSObject>
- (void)onOnlineEvent:(V2NIMSignallingEvent *)event;
- (void)onOfflineEvent:(NSArray<V2NIMSignallingEvent *> *)event;
- (void)onMultiClientEvent:(V2NIMSignallingEvent *)event;
- (void)onSyncRoomInfoList:(NSArray<V2NIMSignallingRoomInfo *> *)channelRooms;
@end
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;
};
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)
})
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 | 自定义控制命令 |