自定义控制命令
更新时间: 2024/09/03 14:14:14
为适配用户的多场景需求,云信信令支持发送自定义控制信令,用户可通过自定义控制信令实现自身的业务逻辑。
调用 sendControl
方法发送自定义控制信令。
V2NIMSignallingService
类提供信令服务相关接口,例如 安卓版 V2NIMSignallingService
。
发送时可以指定接收用户,如果不指定,则默认发送给频道房间内的所有人。发送成功后,服务器会给在线的接收者发送一个控制通知。
非房间内的用户也可以调用该接口,但是接收者必须在频道房间内,或者接收者是频道房间创建者。
参数说明:
Android
javavoid sendControl(String channelId, String receiverAccountId, String serverExtension, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
channelId |
String | 是 | - | 频道 ID,房间的唯一标识。 |
receiverAccountId |
String | 否 | 默认发送给房间内的所有人 | 接收者账号 ID。 |
serverExtension |
String | 否 | - | 服务端扩展字段,可通过该字段自定义控制数据,JSON 格式,长度最大为 4096 字符。 |
success |
V2NIMSuccessCallback | 是 | - | 发送成功回调。 |
failure |
V2NIMFailureCallback | 是 | - | 发送失败回调,返回 错误码。 |
iOS
objective-c- (void)sendControl:(NSString *)channelId
receiverAccountId:(nullable NSString *)receiverAccountId
serverExtension:(nullable NSString *)serverExtension
success:(V2NIMSuccessCallback)success
failure:(V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
channelId |
NSString | 是 | - | 频道 ID,房间的唯一标识。 |
receiverAccountId |
NSString | 否 | 默认发送给房间内的所有人 | 接收者账号 ID。 |
serverExtension |
NSString | 否 | - | 服务端扩展字段,可通过该字段自定义控制数据,JSON 格式,长度最大为 4096 字符。 |
success |
V2NIMSuccessCallback | 是 | - | 发送成功回调。 |
failure |
V2NIMFailureCallback | 是 | - | 发送失败回调,返回 错误码。 |
Windows/macOS
cppvirtual void v2::V2NIMSignallingService::sendControl ( const nstd::string & channelId,
const nstd::optional< nstd::string > & receiverAccountId,
const nstd::optional< nstd::string > & serverExtension,
const V2NIMSuccessCallback< void > & success,
const V2NIMFailureCallback & failure )
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
channelId |
nstd::string | 是 | - | 频道 ID,房间的唯一标识。 |
receiverAccountId |
nstd::string | 否 | 默认发送给房间内的所有人 | 接收者账号 ID。 |
serverExtension |
nstd::string | 否 | - | 服务端扩展字段,可通过该字段自定义控制数据,JSON 格式,长度最大为 4096 字符。 |
success |
V2NIMSuccessCallback | 是 | - | 发送成功回调。 |
failure |
V2NIMFailureCallback | 是 | - | 发送失败回调,返回 错误码。 |
Web/uni-app/小程序
typescriptsendControl(channelId: string, receiverAccountId?: string, serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
channelId |
string | 是 | - | 频道 ID,房间的唯一标识。 |
receiverAccountId |
string | 否 | 默认发送给房间内的所有人 | 接收者账号 ID。 |
serverExtension |
string | 否 | - | 服务端扩展字段,可通过该字段自定义控制数据,JSON 格式,长度最大为 4096 字符。 |
HarmonyOS
typescriptsendControl(channelId: string, receiverAccountId?: string, serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
channelId |
string | 是 | - | 频道 ID,房间的唯一标识。 |
receiverAccountId |
string | 否 | 默认发送给房间内的所有人 | 接收者账号 ID。 |
serverExtension |
string | 否 | - | 服务端扩展字段,可通过该字段自定义控制数据,JSON 格式,长度最大为 4096 字符。 |
示例代码如下:
Android
java//发送控制消息
String channelId = "channelId";
//接受者账号ID
String receiverAccountId = "receiverAccountId";
//服务端扩展字段
String serverExtension = "serverExtension";
NIMClient.getService(V2NIMSignallingService.class).sendControl(channelId, receiverAccountId, serverExtension, new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
}
}, new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
}
});
iOS
objective-cNSString *channelId = @"Channel ID";
NSString *receiverAccountId = @"Account ID";
NSString *serverExtension = @"{\"key\": \"value\"}";
[[NIMSDK sharedSDK].v2SignallingService sendControl:channelId receiverAccountId:receiverAccountId serverExtension:serverExtension success:^() {
// Your Code
} failure:^(V2NIMError *error) {
// Your Code
}];
Windows/macOS
cppsignallingService.sendControl(
"channelId",
"receiverAccountId",
"{\"key\":\"value\"}",
[]() {
// send control success
},
[](V2NIMError error) {
// send control failed, handle error
});
Web/uni-app/小程序
typescriptawait nimsdk.V2NIMSignallingService.sendControl(this.channelId, this.receiverAccountId, this.serverExtension)
HarmonyOS
typescriptawait nimsdk.signallingService.sendControl(this.channelId, this.receiverAccountId, this.serverExtension)
此文档是否对你有帮助?