關於融雲聊天室KV 值的正確使用
在使用融雲集成即時通信的過程當中,根據產品業務邏輯,咱們使用了融雲聊天室場景,由於咱們主要作的是直播聊天室的業務;在使用聊天室的過程當中,瞭解到融雲這邊是有針對聊天室屬性作處理的,這樣的話,更加方便產品的某些功能點的實現,好比說 人數的動態變化等等;html
現就我這邊瞭解到的聊天室的KV 對你們作一個說明,增進對KV 使用的瞭解; 首先,要獲取聊天室的屬性,咱們固然應該加入聊天室,加入聊天室的方式以下所示:android
RongIM.getInstance().joinChatRoom(roomId, 20, new RongIMClient.OperationCallback() { @Override public void onSuccess() { } @Override public void onError(RongIMClient.ErrorCode errorCode) { } });
以上方法無需多言,調用便可加入聊天室,具體參數文檔能夠參考融雲文檔。ide
固然,要獲取聊天室屬性獲取以前,確定要知道如何設置聊天室屬性的,如下方式主要展現客戶端的設置方式:ui
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) { }
});spa
接下來就是獲取的方式了,這塊是我在集成過程當中花費時間比較久的,在獲取以前,須要先了解融雲對於聊天室KV 的總體流程設置:code
-
加入聊天室以後,經過設置的監聽 setKVStatusListener 來獲取到服務KV 的變化,而後在收到變化以後,在調用 getChatRoomEntry 來獲取KV 值便可 。htm
注意:前提條件是設置監聽獲取到KV 變化以後,纔去獲取,由於這個變化是服務發出的,也就是說這是一個通知狀態;文檔
監聽的設置方式:get
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) { } });
經過以上步驟便可完成聊天室屬性的設置,以及獲取;