IM 即时通讯(增强版)
Web
开发指南

聊天室消息管理

更新时间: 2023/03/14 14:15:41

本文介绍聊天室消息管理的技术原理、前提条件和实现方法。

技术原理

网易云信 IM SDK 的 CHATROOM_BROWSER_SDK 下的 types 模块提供 ChatroomMessage 结构定义聊天室消息。您可调用 ChatroomMsgServiceInterface 模块下的方法返回该结构,实现消息发送等操作。

该属性包含的部分重要参数具体见下表。

参数
类型
说明
chatroomId string 聊天室 ID
status string 消息的发送状态,包括发送成功(success)、发送失败(fail) 和发送中( sending
from string 消息发送方账号
time number 消息发送成功的 Unix 时间戳(单位:毫秒)
type string 消息类型
body string 消息的文本内容
attach object 附加信息
idClient string 消息在 SDK 端生成的唯一标识,可做主键使用
  • 上表中的 type 参数的有效值如下:
    • text :文本消息
    • image :图片消息
    • audio :音频消息
    • video :视频消息
    • file :文件消息
    • geo ;地理位置消息
    • custom :自定义消息
    • tip :提醒消息,用于会话内的状态提醒,如进入会话时出现的欢迎消息,或者会话命中敏感词后的提示消息等
    • notification :群通知消息;某些群操作后(如新成员加入)所有群成员会收到一条相应的群通知消息
  • 上表中的 attach 参数的有效值主要有 customimagevideoaudiofilegeo 等,分别代表自定义附加信息、图片、视频、音频和地理位置。

前提条件

在实现聊天室消息相关操作前,请确保您已:

实现方法

实现聊天室消息收发

与发送聊天室消息相关的方法见下表。

方法
说明
sendTextMsg 发送文本消息
sendGeoLocationMsg 发送地理位置消息
sendTipMsg 发送提醒消息
sendCustomMsg 发送自定义消息
sendImageMsg 发送图片消息
sendAudioMsg 发送音频消息
sendVideoMsg 发送视频消息
sendFileMsg 发送文件消息

以下为发送和接收消息的示例:

  • A 用户发送一条消息

    await chatroom.chatroomMsg.sendTextMsg({
      body: 'This is a chatroomMsg'
    })
    
  • B 用户处接收

    chatroom.on('chatroomMsg', function(msg) {
      console.log('收到了消息', msg)
    })
    const msgs = await chatroom.chatroomMsg.queryMessageHistory({
      limit: 100
    })
    console.log(msgs.length) // > 0
    

查询聊天室历史消息

调用 queryMessageHistory 方法即可查询聊天室历史消息。

示例代码如下:

const msgs = await chatroom.chatroomMsg.queryMessageHistory({
  limit: 100
})

根据标签查询历史消息

调用 getHistoryMsgsByTags 方法根据标签(Tags)在云端查询聊天室历史消息。

以 fromTime 和 toTime(单位毫秒)为时间戳,选择查询方向,指定一种或多种标签和消息类型,往前或者往后拉取 limit 条消息。

参数说明:

参数 类型 说明
tags stringArray 标签列表,支持传入多个标签同时查询
types stringArray 消息类型列表,查询指定消息类型的消息,默认查询全部消息类型
fromTime number 起始时间,时间戳
toTime number 结束时间,时间戳
limit number 可查询的最大消息数量,默认和最大值都为 100
reverse number 是否反向

示例代码:

const msgs = await chatroom.chatroomMsg.getHistoryMsgsByTags({ tags: ['aaa'] })
console.log(msgs)  // [{…}, {…}, {…}] 聊天室消息数组
此文档是否对你有帮助?
有帮助
去反馈
  • 技术原理
  • 前提条件
  • 实现方法
  • 实现聊天室消息收发
  • 查询聊天室历史消息
  • 根据标签查询历史消息