二、微信小程序集成融云sdk调试聊天室功能

一、准备工作

首先需要注册融云账号,配置生成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('断开链接成功'));
},
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 12,760评论 28 53
  • 信任包括信任自己和信任他人 很多时候,很多事情,失败、遗憾、错过,源于不自信,不信任他人 觉得自己做不成,别人做不...
    吴氵晃阅读 11,365评论 4 8
  • 怎么对待生活,它也会怎么对你 人都是哭着来到这个美丽的人间。每个人从来到尘寰到升入天堂,整个生命的历程都是一本书,...
    静静在等你阅读 10,456评论 1 6
  • 步骤:发微博01-导航栏内容 -> 发微博02-自定义TextView -> 发微博03-完善TextView和...
    dibadalu阅读 8,442评论 1 3

友情链接更多精彩内容