关于web:微信小程序集成融云-SDK-即时通讯-集成必备条件

114次阅读

共计 2510 个字符,预计需要花费 7 分钟才能阅读完成。

微信小程序集成融云 SDK(即时通讯)集成必备条件


前言

最近公司须要用微信小程序做一个可能让用户沟通的性能,通过后期筛选和比照,最初还是抉择了应用融云的即时通讯,上面是我用小程序首次集成融云的 SDK 碰到的问题,在此做个记录不便本人查看,同时也给有须要的同学作为参考。
前端小鸟一枚,立誓要成为前端菜鸟,有余中央留言指出,小子谢过。

筹备工作

1. 官网注册(https://www.rongcloud.cn/)

  • 进入开发者后盾 – 创立利用 – 获取 appkey(很重要!很重要!很重要!)

  • 获取用户 token,一开始我很费解为什么要获取 token?token 是什么?怎么获取 token?(暴击三连问 o(╥﹏╥)o)简略来说就是用户的身份标识。

这里就不一一解答了,间接看 官网地址 – token 就行了,外面说的很分明。

  • 对于在前端开发阶段,还没有和后端对接时,举荐应用融云开发者后盾中的 API 调用(在调试方面,真的太好用了)传入正确的参数即可

  1. 下载 SDK

留神:小程序 SDK 须要开明小程序服务后,在开发者后盾中获取

然而在文档中又看到说 3.x 小程序与 Web SDK 雷同,那用 Web 端的 SDK 也是能够的咯,为什么还要开明服务能力获取呢,算了!能用就行

开始集成

1、首先要需在微信公众平台配置以下非法域名(配置详情请点击这里),微信小程序如何配置非法域名应该不须要说了吧

2、SDK 初始化

  • 开发者在应用融云 SDK 所有性能之前,开发者必须先调用此办法初始化 SDK。在利用整个生命周期中,开发者只须要将 SDK 初始化一次
var im = RongIMLib.init({appkey: ' '  // 这里就是咋们在开发者后盾取得到的 appkey});

3、设置监听

  • 监听音讯、状态、会话列表的变动
  • 留神:当设置多个 im.watch 的时候, 当收到一条音讯后, 每个 watch 都会监听到此音讯,所以会呈现发一条音讯,然而会反复收到这条音讯
  • 解决:在全局设置监听一次即可,不要放在组件生命周期中,避免每次组件重载都设置一次
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);
  }
});

4、连贯融云

  • 连贯办法在利用的整个生命周期,也只须要调用一次即可,反复连贯会报错
  • 敲重点!敲重点!敲重点!除初始化、监听以外,所有办法都必须在 connect 胜利之后 再调用
var user = {token: '' // 能够在开发者后盾中调用 获取 token 来取得};
// im 来自 RongIMLib.init 返回的实例,例如:var im = RongIMLib.init({appkey: ' '});
im.connect(user).then(function(user) {console.log('链接胜利, 链接用户 id 为:', user.id);
}).catch(function(error) {console.log('链接失败:', error.code, error.msg);
});

连贯胜利之后就能够发送音讯,获取会话列表和历史音讯办法等等

须要留神的是:获取会话列表和历史音讯须要开明 IM 商用版 – 单群聊云存储  性能。

间接贴代码了:

// 获取会话列表
im.Conversation.getList().then(function(conversationList) {console.log('获取会话列表胜利', conversationList);
});
// 发送音讯:单聊文本音讯
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);
});
// 获取历史音讯
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);
});

最初退出,断开连接

im.disconnect().then(function() {console.log('断开链接胜利');
});

集成融云 SDK 整个流程还是蛮简略、清晰的,想持续理解细节能够去看看融云的开发文档,地址:https://docs.rongcloud.cn/v4/…


正文完
 0