天天看點

接入融雲所遇到的坑

快到年底了,本來想着混混日子,看看書,拿着最後一個月的工資 高高興興回家去。願望是美好的,現實是殘酷的。 新來的CTO,讓開始接入融雲  哎。。。

大概看了一下融雲提供的Demo, 說實話融雲提供的文檔還是很清楚的,是以并沒有很多的坑。主要自己吓自己,導緻的。

場景: 直播聊天室

本來想要把每一步都給貼出來,算是總結下。但是發現這編輯器是在不是那麼好用。而且好像也沒這個必要。好好看下demo 按照流程走 肯定可以介入成功。

   唯一遇到一個坑就是  服務端插入消息的時候 用戶端的 onReceived方法 一直收不到 回調。

private static RongIMClient.OnReceiveMessageListener onReceiveMessageListener = new RongIMClient.OnReceiveMessageListener() {
        @Override
        public boolean onReceived(Message message, int i) {
            Log.e("lipeng","_____onReceived____"+i+"條");
            TextMessage msg = (TextMessage) message.getContent();
            if (!msg.getContent().equals("")) {
                msg.setExtra(msg.getContent());
            }
            String messageExtra = msg.getExtra();
            dispatchMessage(messageExtra,i);
            return false;
        }
    }; 
           

這裡說下我們自己的業務,  建立聊天室的時候  我們設定一個roomid ,對應每一個使用者。 首先是建立這個聊天室,  然後每一個用戶端進入聊天,

現在業務需要 沒進入一個使用者,需要插入一條 誰誰進入聊天室的文本, 但是這條插入的消息我們用戶端一直收不到,但是如果再次進入聊天室的話,拉取曆史聊天消息卻可以

拉取到插入的消息。

被難住了3天,後來發現,服務端插入消息 也是以一個使用者向聊天室的方式插入。例如 使用者A 現在在聊天室,服務端現在以使用者A 的身份插入一條消息,這條消息 隻有使用者A 接受不到,其他使用者是可以接受到的。

問了下融雲 工單,不知道是我表述不清還是 融雲那邊程式員了解不了, 最後還是沒有搞清楚。

是以我們這邊隻能使用一個聊天室不存在的ID 去發送這條消息。

後來發現不止服務端插入,我們用戶端調用SDK發送消息也一樣,隻不過是被邏輯處理了,是以一時沒有發現。

————————————————————————我會告訴你 ,寫這麼多東西隻是我上班太無聊,打發時間的嗎。。。。。。