融云作为国内常用即时通讯支持技术公司,使用起来很方便,文档写的也很清楚,下面说说使用融云时遇到的坑
同时使用lib与kit时注意(kit做即使通讯,lib做直播的聊天室):(初始化和连接使用kit,因为kit实在lib基础上进行开发的) http://support.rongcloud.cn/kb/NTg5 lib设置监听应该使用
//(livekit中注册)不使用RongIMClient,否则将会覆盖kit的,导致无法会话界面以及会话列表无法收到消息 /** * 初始化方法,在整个应用程序全局只需要调用一次,建议在Application 继承类中调用。 * <p/> * <strong>注意:</strong>其余方法都需要在这之后调用。 * * @param context Application类的Context */ public static void init(Context context) { // RongIMClient.init(context); // RongIMClient.setOnReceiveMessageListener(onReceiveMessageListener); //RongIMClient会覆盖kit库中的监听,导致无法收到消息 RongIM.setOnReceiveMessageListener(onReceiveMessageListener); registerMessageType(GiftMessage.class); registerMessageView(TextMessage.class, TextMsgView.class); registerMessageView(InformationNotificationMessage.class, InfoMsgView.class); }此时需要对监听消息进行晒选,否则所有的消息都会接受到,也可以只在使用时注册(开启聊天室时进行注册)
private static RongIMClient.OnReceiveMessageListener onReceiveMessageListener = new RongIMClient.OnReceiveMessageListener() { @Override public boolean onReceived(Message message, int i) { if (message.getConversationType() == Conversation.ConversationType.CHATROOM && message.getTargetId().equals(currentRoomId)) { handleEvent(MESSAGE_ARRIVED, message.getContent()); } return false; } };http://v.youku.com/v_show/id_XMTM3MjgyODYzNg==.html
设置聊天头像与用户名 1. 可以使用内容提供者(可以分别设置用户和群组),不要设置在有生命周期的组件中 2. 如果陌生人私聊可以不使用提供这
//连接成功后使用(缺点,必须发了消息才能收到,列表界面这么设置第一次无法刷新) if (RongIM.getInstance() != null) { RongIM.getInstance().setCurrentUserInfo(new UserInfo(UserInfoUtils.get().getUserId(), UserInfoUtils.get().getUserName(), Uri.parse(UserInfoUtils.get().getUserInfo().getHeadimgurl()))); } //使用消息携带用户信息 RongIM.getInstance().setMessageAttachedUserInfo(true); 更新头像 //注释的方法与内容提供者一起使用,没有注释的与第二种进行使用 RongContext.getInstance().getCurrentUserInfo().setPortraitUri(Uri.parse(data.getHeadimgurl())); //RongIM.getInstance().refreshUserInfoCache(new UserInfo(UserInfoUtils.get().getUserId(), //data.getReal_name(), //Uri.parse(data.getHeadimgurl())));退群处理 https://developer.rongcloud.cn/ticket/info/izs761Y2qqFk0HKedw==?type=1