全部文档

更新时间: 2021-03-08

uni-app 从 sdk 3.0.5 开始适配,如需要使用,请引入 3.0.5 以上的版本

# 导入 SDK

const RongIMLib = require('./lib/RongIMLib-3.0.7.2-dev.js');
已复制
1

# SDK 下载

注: 3.x uni-app 与 Web SDK 相同

# 初始化

  1. 请在开发功能之前从 融云开发者后台 (opens new window)注册得到的 Appkey
  2. 开发者在使用融云 SDK 所有功能之前,开发者必须先调用此方法初始化 SDK。 在应用整个生命周期中,开发者只需要将 SDK 初始化一次。
var im = RongIMLib.init({
  appkey: ' '
});
已复制
1
2
3

# 设置监听

需先设置监听再连接服务器

var conversationList = []; // 当前已存在的会话列表
im.watch({
  conversation: function(event){
    var updatedConversationList = event.updatedConversationList; // 更新的会话列表
    console.log('更新会话汇总:', updatedConversationList);
    console.log('最新会话列表:', im.Conversation.merge({
        conversationList,
        updatedConversationList
      }));
  },
  message: function(event){
    var message = event.message;
    console.log('收到新消息:', message);
  },
  status: function(event){
    var status = event.status;
    console.log('连接状态码:', status);
  }
});
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 连接融云

token 即用户令牌,相当于当前用户连接融云的身份凭证。在连接融云服务器之前,需要 App Server 通过融云 Server API 获取 Token,客户端获取到这个 Token 即可连接融云服务器。

/* 开发者后台获取或 Server API */
var user = {
  token: 'mKmyKqTSf7aNDinwAFMnz7NXKI3dV3X0+Cd1BOxmtO2pmvsjW2HViWrePIfq0GuTu9jELQqsckv4AhfjCAKgQ=='
};
im.connect(user).then(function(user) {
  console.log('链接成功, 链接用户 id 为: ', user.id);
}).catch(function(error) {
  console.log('链接失败: ', error.code, error.msg);
});
已复制
1
2
3
4
5
6
7
8
9

# 获取会话列表

该功能需开启 IM 商用版 - 单群聊云存储 (opens new window) 功能,方法同获取历史消息开通服务部分。获取会话列表需要在 connect 成功后执行。

im.Conversation.getList().then(function(conversationList) {
  console.log('获取会话列表成功', conversationList);
});
已复制
1
2
3

# 发送消息

发送单聊文本消息需要在 connect 成功后执行。

var conversation = im.Conversation.get({
  targetId: 'user1',
  type: RongIMLib.CONVERSATION_TYPE.PRIVATE
});
conversation.send({
  messageType: RongIMLib.MESSAGE_TYPE.TEXT, // 'RC:TxtMsg'
  content: {
    content: 'Hello RongCloud' // 文本内容
  }
}).then(function(message){
  console.log('发送文字消息成功', message);
});
已复制
1
2
3
4
5
6
7
8
9
10
11
12

# 接收消息

用户 B 连接服务器成功后,可通过 im.watch 中的 message 接收用户 A 发送的消息。具体可参考 设置监听

# 获取历史消息

获取历史消息需要在 connect 成功后执行。
如需从融云的服务器拉取历史消息,需要开通 IM 商用版 - 单群聊云存储 (opens new window) 功能。

var conversation = im.Conversation.get({
  targetId: 'user1',
  type: RongIMLib.CONVERSATION_TYPE.PRIVATE
});
var option = {
  timestrap: +new Date(),
  count: 20
};
conversation.getMessages(option).then(function(result){
  var list = result.list; // 历史消息列表
  var hasMore = result.hasMore; // 是否还有历史消息可以获取
  console.log('获取历史消息成功', list, hasMore);
});
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13

# 断开连接

  1. 断开当前用户连接. 调用后不再接收消息, 不可发送消息, 不可获取历史消息, 不可获取会话列表
  2. 在下次连接融云成功后,会收取上次离线后的消息,离线消息最多可以保存 7 天。
im.disconnect().then(function() {
  console.log('断开链接成功');
});
已复制
1
2
3

文档是否解决您的问题 ?

如果遇到产品相关问题,您可 提交工单 寻求帮助