融云一些坑记录

  • 单条消息最大128K,所以不能设置太多消息内容。字段太多之后,尾部的字段就会丢失。

  • 自定义通知类消息不能填满屏幕宽度。只能手动设置。

  • 要更改头像旁边的文字内容只能手动覆盖原有的消息提供者,去覆盖普通的TextMessageProvider ,ImageMessageProvider,等等比如这种下面这种效果在这里插入图片描述去去加布局内容,比如重写系统的TextMessageItemProvider,然后再注册一下该提供者。

  • 融云测试环境,当调用 connect 注册token 后 ,即使服务器端这个时候传入了用户id 和姓名 ,并且已经能正常聊天的情况下,依然会出现查不到用户姓名和id 的情况(在融云的API调试中查询用户), 融云的正式环境没有这个问题

  • 打开多端消息同步后,在一端已经阅读过的消息,在另一端会受到融云消息补偿机制推过来的消息,这个时候,会导致setOnReceiveMessageListener 监听的逻辑就会异常,明明受到了消息,去未读列表看,啥都没有,可以这样做,晚一些再去显示监听到的消息,并配合getUnreadCount拿到的未读消息数进行判断,我观察到的现象是,如果你给一端发了5条消息,并且你进入这端的会话详情页去读了这几条消息,当你在另一端登录同一账号时,setOnReceiveMessageListener的 onReceived 会给你返回来好几次的 信息,其中的left 从 5、 4、 3、 2 、1 、0 这样递减

RongIM.setOnReceiveMessageListener(new RongIMClient.OnReceiveMessageListener() {
            @Override
            public boolean onReceived(io.rong.imlib.model.Message message, int left) {
            //剩余0条才显示
                if(left == 0) {
                    Timer timer = new Timer();
                    timer.schedule(new TimerTask() {
                        public void run() {
                        //晚一秒再去拿unreadCount 数。
                            int unreadCount = RongIM.getInstance().getUnreadCount(Conversation.ConversationType.PRIVATE);
                            if(unreadCount > 0) {
                            //如果晚一秒拿到的未读消息数还是大于0,则显示该条消息的通知。
                                setNotification(message, left);
                            }
                        } }, 500);
                }

                if (message.getContent() instanceof HouseMessage || message.getContent() instanceof MarketMessage) {
                    SingleSoundPlayerHelper.playAsset("momo.mp3");
                }
                return false;
            }
        });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值