跳到主要内容

自定义房间属性

如开发者需要存储并通知给其他人房间相关的业务信息,可调用 RCRTCRoom 下的 setRoomAttribute 来存储和扩散自定义属性键值。

设置属性

void setRoomAttribute(String key, String value, MessageContent message, final IRCRTCResultCallback callback);
  • 参数说明:

    参数类型说明
    key字符串属性名称
    value字符串属性值
    messageMessageContent是否在设置属性的时候携带消息内容,传空则不往房间中发送消息
    callbackIRCRTCResultCallback设置完成回调
  • 示例代码:

    room.setRoomAttribute(userId, jsonObject.toString(), null , new IRCRTCResultCallback() {
    @Override
    public void onSuccess() {
    }

    @Override
    public void onFailed(RTCErrorCode errorCode) {
    }
    });
  • API 参考:

获取属性

void getRoomAttributes(List<String> attributeKeys, final IRCRTCResultDataCallback<Map<String, String>> callback);
  • 参数说明:

    参数类型说明
    attributeKeysList<String>属性名称列表,如果传 null 则表示获取所有属性值
    callbackIRCRTCResultDataCallback<Map<String, String>>属性获取的结果回调
  • 示例代码:

    room.getRoomAttributes(null, new IRCRTCResultDataCallback<Map<String, String>>() {
    @Override
    public void onSuccess(final Map<String, String> data) {
    }

    @Override
    public void onFailed(RTCErrorCode errorCode) {
    }
    });
  • API 参考:

删除属性

void deleteRoomAttributes(List<String> attributeKeys, MessageContent message, final IRCRTCResultCallback callback);
  • 参数说明:

    参数类型说明
    attributeKeysList<String>属性 Key 值列表
    messageMessageContent是否在设置属性的时候携带消息内容,传空则不往房间中发送消息
    callbackIRCRTCResultCallback删除完成回调 callback
  • 示例代码:

    room.deleteRoomAttributes(attributes, null, new IRCRTCResultCallback() {
    @Override
    public void onSuccess() {
    }

    @Override
    public void onFailed(RTCErrorCode errorCode) {
    }
    });
  • API 参考:

属性变化回调

在设置和删除自定义房间属性时,如果设置了 MessageContent 参数,则房间内的其他用户可以通过 IRCRTCRoomEventsListener 里面的房间自定义状态消息回调监听房间属性的改变,如果未设置 MessageContent 参数则不会回调此监听方法。

public void onReceiveMessage(Message message);
  • 参数说明:

    参数类型说明
    messageMessage接收到其他人发送到 room 里的消息体