⼩程序集成融云SDK(即时通讯)集成必备条件
前⾔
最近公司需要⽤⼩程序做⼀个能够让⽤户沟通的功能,经过前期筛选和对⽐,最后还是选择了使⽤融云的即时通讯,下⾯是我⽤⼩程序⾸次集成融云的 SDK 碰到的问题,在此做个记录⽅便⾃⼰查看,同时也给有需要的同学作为参考。
前端⼩鸟⼀枚,⽴誓要成为前端菜鸟,不⾜地⽅留⾔指出,⼩⼦谢过。
准备⼯作
进⼊开发者后台 - 创建应⽤ - 获取 appkey (很重要!很重要!很重要!)
获取⽤户 token ,⼀开始我很费解为什么要获取 token ?token 是什么?怎么获取 token?(暴击三连问 o(╥﹏╥)o)简单来说就是⽤户的⾝份标识。
这⾥就不⼀⼀解答了,直接看 就⾏了,⾥⾯说的很清楚。
对于在前端开发阶段,还没有和后端对接时,推荐使⽤融云开发者后台中的 API 调⽤(在调试⽅⾯,真的太好⽤了)传⼊正确的参数即可
2.
注意:⼩程序 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('最新会话列表:', ({
conversationList,
updatedConversationList
}));
},
message:function(event){
var message = ssage;
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: ' ' });
console.log('链接成功, 链接⽤户 id 为: ', user.id);
}).catch(function(error){
console.log('链接失败: ', de, error.msg);
});
连接成功之后就可以发送消息,获取会话列表和历史消息⽅法等等
需要注意的是:获取会话列表和历史消息需要开通 功能。
直接贴代码了:
//获取会话列表
List().then(function(conversationList){
console.log('获取会话列表成功', conversationList);
});
//发送消息:单聊⽂本消息
var conversation = ({
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 = ({
targetId:'user1',
type: RongIMLib.CONVERSATION_TYPE.PRIVATE
});
var option ={
timestrap:+new Date(),
count:20
};
var list = result.list;// 历史消息列表
var hasMore = result.hasMore;// 是否还有历史消息可以获取
console.log('获取历史消息成功', list, hasMore);
});
最后退出,断开连接
sdk
im.disconnect().then(function(){
console.log('断开链接成功');
});
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论