自定义控制命令

更新时间: 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)
此文档是否对你有帮助?
有帮助
去反馈