跳到主要内容

加入聊天室

应用程序服务端创建聊天室后,可将聊天室 ID 下分发至客户端。客户端获取聊天室 ID 后可加入聊天室。

  • 应用程序的服务端可以调用 IM Server API 创建聊天室。详见服务端文档创建聊天室
  • 应用程序的服务端可以通过聊天室状态同步收到聊天室创建成功与成员加入等事件通知。
  • 默认同一用户不能同时加入多个聊天室。App 用户加入新的聊天室后会自动退出之前的聊天室。您可以在控制台启用单个用户加入多个聊天室,详见聊天室服务配置
  • IMLib SDK 可在断网重连后自动重新加入聊天室。

加入已存在的聊天室

提示
  1. Electron 平台从 5.7.0 开始提供该接口。
  2. 从 5.8.3 开始,成功回调的 data 数据中返回聊天室信息和禁言状态,详见 IChatroomJoinResponse

如果聊天室已存在,在获取 chatRoomId 后可以调用 joinExistChatRoom 加入聊天室。该方法只能加入已存在的聊天室。

const chatRoomId = "聊天室 ID";
const count = 50;

RongIMLib.joinExistChatRoom(chatRoomId, {
count: count
}).then(res => {
// 加入聊天室成功
const { code, data } = res;
if(code === RongIMLib.ErrorCode.SUCCESS){
console.log(code, data)
} else {
console.log(code)
}
}).catch(error => {
console.log(error)
})
参数类型说明
chatRoomIdstring聊天室 ID。应用程序服务端应调用 IM Server API 创建聊天室,详见创建聊天室
countnumber进入聊天室时获取历史消息的数量,数量范围:1-50。如果传 -1,表示不获取任何历史消息。如果传 0,表示使用 SDK 默认设置(默认为获取 10 条)。

加入聊天室

提示

IMLib 从 5.8.3 开始废弃该方法

joinChatRoom 接口会创建并加入聊天室。如果聊天室已存在,则直接加入。如果您使用了服务端回调聊天室状态同步,融云会将聊天室创建成功的通知发送到您指定的服务器地址。

const chatRoomId = "聊天室 ID";
const count = 50;

RongIMLib.joinChatRoom(chatRoomId, {
count: count
}).then(res => {
// 加入聊天室成功
if (res.code === RongIMLib.ErrorCode.SUCCESS){
console.log(res.code)
} else {
console.log(res.code, res.msg)
}
}).catch(error => {
console.log(error)
})
参数类型说明
chatRoomIdstring聊天室 ID
countnumber进入聊天室时获取历史消息的数量,数量范围:1-50。如果传 -1,表示不获取任何历史消息。如果传 0,表示使用 SDK 默认设置(默认为获取 10 条)。

断线重连后重新加入聊天室

SDK 具备断线重连机制。重连成功后,如果当前登录用户曾经加入过聊天室,且没有退出,则 SDK 会自动重新加入聊天室,不需要 App 处理。App 可以通过聊天室状态回调收到通知。

提示

断网重连场景下,SDK 重新加入聊天室成功后,会按照加入聊天室时传入的 count 值拉取固定数量的消息。拉取的消息有可能在本地已存在,App 可能需要进行排重后再显示。

  • Electron 从 5.7.0 开始,支持断网重连情况下,SDK 重新加入聊天室后拉取消息的行为。低于 5.7.0 版本的 SDK 不会拉取消息。