一、准备工作
首先需要注册融云账号,配置生成App Key,并开通小程序服务
官网地址:https://www.rongcloud.cn/
开发文档地址:https://docs.rongcloud.cn/v4/views/im/noui/guide/quick/premise/open.html
可根据官方文档一步一步来完成注册

image.png
接下来要做的就是获取测试要用的用户token,这里官方给我们提供了api直接获取用于测试,进入控制台,带你api调用,手动生成用户会返回token给你,用于开发测试用

image.png
二、导入sdk后进行初始化,导入sdk方式可看第一篇
导入并初始化
const RongIMLib = require('@rongcloud/imlib-v4')
// 应用初始化以获取 RongIMLib 实例对象,请务必保证此过程只被执行一次
const im = RongIMLib.init({ appkey: '你自己的app key' });
三、监听事件方法
用于监听各种事件,如聊天室中的用户新发的消息
/**监听事件 */
watchIM(e){
// 添加事件监听
im.watch({
// 监听会话列表变更事件
conversation (event) {
// 假定存在 getExistedConversationList 方法,以获取当前已存在的会话列表数据
const conversationList = getExistedConversationList()
// 发生变更的会话列表
const updatedConversationList = event.updatedConversationList;
// 通过 im.Conversation.merge 计算最新的会话列表
const latestConversationList = im.Conversation.merge({ conversationList, updatedConversationList })
console.log("发生变更的会话列表:",event)
},
// 监听消息通知
message (event) {
//
const message = event.message;
console.log("新接收到的消息内容:",event)
},
// 监听 IM 连接状态变化
status (event) {
console.log('connection status:', event.status);
},
// 监听聊天室 KV 数据变更
chatroom (event) {
/**
* 聊天室 KV 存储数据更新
* @example
* [
* {
* "key": "name",
* "value": "我是小融融",
* "timestamp": 1597591258338,
* "chatroomId": "z002",
* "type": 1 // 1: 更新( 含:修改和新增 )、2: 删除
* },
* ]
*/
const updatedEntries = event.updatedEntries
console.log("聊天室 KV 存储数据更新:",event)
},
expansion (event) {
/**
* 更新的消息拓展数据
* @example {
* expansion: { key: 'value' }, // 设置或更新的扩展值
* messageUId: 'URIT-URIT-ODMF-DURR' // 设置或更新扩展的消息 uid
* }
*/
const updatedExpansion = event.updatedExpansion;
/**
* 删除的消息拓展数据
* @example {
* deletedKeys: ['key1', 'key2'], // 设置或更新的扩展值
* messageUId: 'URIT-URIT-ODMF-DURR' // 设置或更新扩展的消息 uid
* }
*/
const deletedExpansion = event.deletedExpansion;
console.log("更新的消息拓展数据:",event)
}
})
},
四、连接融云服务
传入用户的token
/**连接im */
connectIM(token){
//建立im连接
im.connect({ token:token}).then(user => {
console.log('链接成功, 链接用户 id 为: ', user.id);
}).catch(error => {
console.log('链接失败: ', error.code, error.msg);
});
},
五、加入聊天室
` joinRoom(e){
// 注: im 实例通过 RongIMLib.init 获取(单个页面仅需初始化一次)
var chatRoom = im.ChatRoom.get({
id: '001' //自己创建的聊天室id,如没有回自动创建
});
chatRoom.joinExist({
count: 20 // 进入后, 自动拉取 20 条聊天室最新消息
}).then(function() {
console.log('加入聊天室成功');
});
},
六、发送消息
/**发送消息 */
send(e){
let that=this
// 获取指定会话的抽象实例,对于会话的操作基于此实例完成
const conversation = im.Conversation.get({
// targetId
targetId: '001',
// 会话类型:RongIMLib.CONVERSATION_TYPE.PRIVATE | RongIMLib.CONVERSATION_TYPE.GROUP
type: RongIMLib.CONVERSATION_TYPE.CHATROOM
});
// 向会话内发消息
conversation.send({
// 消息类型,其中 RongIMLib.MESSAGE_TYPE 为 IMLib 内部的内置消息类型常量定义
messageType: RongIMLib.MESSAGE_TYPE.TEXT, // 'RC:TxtMsg'
// 消息内容
content: {
content: '这是第1条消息' // 文本内容
}
}).then(function(message){
console.log('发送文字消息成功', message);
}).catch(error => {
console.log('发送文字消息失败', error.code, error.msg);
});
},
七、断开连接
到这里基本就可以实现测试简单的聊天室功能了
quit(e){
im.disconnect().then(() => console.log('断开链接成功'));
},