融云中如何获取消息?

问题描述

在vue项目中需要实现聊天室的功能,选择了融云,个人将官网文档中的一些接口(初始化、连接、监听等)写在了 mounted中,将appkey、和userid、token存储在data中,然后一些自定义的function定义在了methods中,比如发送消息,现在消息发送成功了。
【问题】:那要如何接收消息?

问题出现的环境背景及自己尝试过哪些方法

我看到官网上有提供下面这个方法,描述是接收到的消息,但是我在onReceived()这个方法中打印数据,在控制台并没有打印出相关的信息。

// 消息监听器
RongIMClient.setOnReceiveMessageListener({
    // 接收到的消息
    onReceived: function(message) {
        console.log('message-->',message)
        ...
    }
})

相关代码

data(){
    return {
        userId: 'key001'
        appkey: 'xxx',
        token: 'xxxxx'
    }
},
mounted(){ //初始化,连接那些都省略
    ...
    // 消息监听器
    RongIMClient.setOnReceiveMessageListener({
        // 接收到的消息
        onReceived: function(message) {
            console.log('message-->',message)
            ...
        }
    })
    ...
},
methods:{
    ... //其他一些无关也省略
    
    sendTextMessage (textContent) {
      let msg = new RongIMLib.TextMessage({content: textContent, extra:"附加信息"});
      let conversationtype = RongIMLib.ConversationType.PRIVATE; // 单聊
      let targetId = "doctor001"; // 目标 Id
      
      RongIMClient.getInstance().sendMessage(conversationtype, targetId, msg, {
      
        onSuccess: function (message) {
          console.log("Send successfully");
        },
        
        onError: function (errorCode,message) {
         ... //省略
        }
        
      });
    }
}

你期待的结果是什么?实际看到的错误信息又是什么?

控制台打印的信息:

正在链接
链接成功
Connect successfully.key001
Send successfully

自己看文档,如何获取回话列表有点没看懂。文档中有说获取单聊历史消息,但是这之前不是有个监听接收消息的function了吗?又要一个getHistoryMessages(获取历史消息)干嘛?
【期待结果】:各位帮帮忙,顺便帮我解释下几个问题:
1、监听接收消息setOnReceiveMessageListener,控制台无打印,要如何打印出这块接收到的数据
2、setOnReceiveMessageListener() 和 getHistoryMessages() 区别
先谢过各位大神了~~~

阅读 2.6k
1 个回答

setOnReceiveMessageListener,是接收实时消息,需要当另外一个人给你发送一条消息才可以监听到,如果是要看之前发送的消息,要用获取历史会话

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题