自定义房间属性
如开发者需要存储并通知给其他人房间相关的业务信息,可调用 RCRTCRoom
下的 setRoomAttribute
来存储和扩散自定义属性键值。
设置属性
void setRoomAttribute(String key, String value, MessageContent message, final IRCRTCResultCallback callback);
-
参数说明:
参数 类型 说明 key 字符串 属性名称 value 字符串 属性值 message MessageContent 是否在设置属性的时候携带消息内容,传空则不往房间中发送消息 callback IRCRTCResultCallback 设置完成回调 -
示例代码:
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);
-
参数说明:
参数 类型 说明 attributeKeys List<String> 属性名称列表,如果传 null 则表示获取所有属性值 callback IRCRTCResultDataCallback<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);
-
参 数说明:
参数 类型 说明 attributeKeys List<String> 属性 Key 值列表 message MessageContent 是否在设置属性的时候携带消息内容,传空则不往房间中发送消息 callback IRCRTCResultCallback 删除完成回调 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);
-
参数说明:
参数 类型 说明 message Message 接收到其他人发送到 room 里的消息体