天天看点

接入融云所遇到的坑

快到年底了,本来想着混混日子,看看书,拿着最后一个月的工资 高高兴兴回家去。愿望是美好的,现实是残酷的。 新来的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发送消息也一样,只不过是被逻辑处理了,所以一时没有发现。

————————————————————————我会告诉你 ,写这么多东西只是我上班太无聊,打发时间的吗。。。。。。