写点什么

关于融云聊天室 KV 值的正确使用

发布于: 2021 年 03 月 15 日

在使用融云集成即时通讯的过程中,根据产品业务逻辑,我们使用了融云聊天室场景,因为我们主要做的是直播聊天室的业务;在使用聊天室的过程中,了解到融云这边是有针对聊天室属性做处理的,这样的话,更加方便产品的某些功能点的实现,比如说 人数的动态变化等等;


现就我这边了解到的聊天室的 KV 对大家做一个说明,增进对 KV 使用的了解; 首先,要获取聊天室的属性,我们当然应该加入聊天室,加入聊天室的方式如下所示:


 RongIM.getInstance().joinChatRoom(roomId, 20, new RongIMClient.OperationCallback() {
复制代码


        @Override
复制代码


        public void onSuccess() {
复制代码


        }
复制代码


复制代码


        @Override
复制代码


        public void onError(RongIMClient.ErrorCode errorCode) {
复制代码


        }
复制代码


    });
复制代码

以上方法无需多言,调用即可加入聊天室,具体参数文档可以参考融云文档。 当然,要获取聊天室属性获取之前,肯定要知道如何设置聊天室属性的,以下方式主要展示客户端的设置方式:


   RongIMClient.getInstance().setChatRoomEntry(chatRoomId, key, value, sendNotification, isAutoDel, notificationExtra, new RongIMClient.OperationCallback() {
复制代码


复制代码


/**
复制代码


 * 成功回调
复制代码


 */
复制代码


@Override
复制代码


public void onSuccess() {
复制代码


    
复制代码


}
复制代码


复制代码


/**
复制代码


 * 失败回调
复制代码


 * @param errorCode 错误码
复制代码


 */
复制代码


@Override
复制代码


public void onError(RongIMClient.ErrorCode errorCode) {
复制代码


    
复制代码


}
复制代码

});


接下来就是获取的方式了,这块是我在集成过程中花费时间比较久的,在获取之前,需要先了解融云对于聊天室 KV 的整体流程设置:


  • 加入聊天室之后,通过设置的监听 setKVStatusListener 来获取到服务 KV 的变化,然后在收到变化之后,在调用 getChatRoomEntry 来获取 KV 值即可 。


     RongIMClient.getInstance().setKVStatusListener(new RongIMClient.KVStatusListener() {
复制代码


        @Override
复制代码


        public void onChatRoomKVSync(String roomId) {
复制代码


            
复制代码


        }
复制代码


复制代码


        @Override
复制代码


        public void onChatRoomKVUpdate(String roomId, Map<String, String> chatRoomKvMap) {
复制代码


复制代码


        }
复制代码


复制代码


        @Override
复制代码


        public void onChatRoomKVRemove(String roomId, Map<String, String> chatRoomKvMap) {
复制代码


复制代码


        }
复制代码


    });
复制代码

当服务的 KV 发送变化时候,会在 onChatRoomKVUpdate 中回调到的,回调中的 Map 就是变化得 KV 值,当然可以用户主动调用来进行获取,方式如下:


        RongIMClient.getInstance().getAllChatRoomEntries(roomId, new RongIMClient.ResultCallback<Map<String, String>>() {
复制代码


        @Override
复制代码


        public void onSuccess(Map<String, String> stringStringMap) {
复制代码


           
复制代码


        }
复制代码


复制代码


        @Override
复制代码


        public void onError(RongIMClient.ErrorCode e) {
复制代码


            
复制代码


        }
复制代码


    });
复制代码

通过以上步骤即可完成聊天室属性的设置,以及获取;


用户头像

还未添加个人签名 2021.01.26 加入

还未添加个人简介

评论

发布
暂无评论
关于融云聊天室KV 值的正确使用