IM 即时通讯(增强版)
Web
新手接入指南
产品介绍
简介
产品优势
主要功能
功能介绍
账号集成与登录
基础消息功能
群组功能
聊天室功能
圈组功能
多端登录与互踢策略
海外数据中心
IM 平滑迁移方案
接口及业务限制
更新日志
IM UIKit 更新日志
NIM SDK 更新日志
体验 Demo
下载 SDK 与 Demo 源码
快速开始
跑通 IM Demo 源码
实现单聊消息收发(不含 UI)
实现圈组消息收发(不含 UI)
含 UI 集成
什么是 IM UIKit
IM UIKit 功能列表
快速集成 IM UIKit
非React框架集成 IM UIKit
组件导入
初始化
全局上下文
登录相关
实现消息收发及界面自定义
集成会话列表界面
集成会话消息界面
集成用户资料组件
集成通讯录界面
集成搜索组件
非 React 框架自定义示渲染
主题样式设置
语言设置
初始化(兼容 NIM SDK)
不含 UI 集成
SDK 集成概述
小程序环境集成声明
初始化与登录
消息收发
历史消息
消息扩展
最近会话
用户资料托管
好友关系托管
在线状态订阅
系统通知
群组功能
群组概述
群组管理
群成员管理
群消息管理
超大群功能
超大群概述
超大群管理
超大群成员管理
超大群消息管理
反垃圾
聊天室功能
聊天室概述
聊天室标签功能
快速实现聊天室登录
聊天室消息管理
聊天室成员管理
聊天室信息管理
聊天室队列服务
圈组功能
圈组概述
初始化与登录
通用接口校验说明
服务器相关
服务器概述
服务器管理
服务器成员管理
游客功能
服务器未读数管理
频道相关
频道概述
频道管理
频道黑白名单
频道分组
频道分组黑白名单
频道未读数管理
实时互动频道
搜索服务器与频道
身份组相关
身份组概述
身份组应用场景
服务器身份组
频道身份组
频道用户定制权限
频道分组身份组
自定义权限项
成员权限查询与判定
身份组相关查询
圈组订阅机制
圈组消息相关
圈组消息收发
圈组消息撤回
圈组消息更新
圈组消息删除
消息正在输入
获取频道最后一条消息
会话消息回复(Thread)
圈组快捷评论
圈组消息搜索
查询历史消息
查询@我的消息
圈组系统通知相关
圈组系统通知概述
圈组系统通知收发
圈组系统通知更新
圈组内容审核
圈组第三方回调
圈组相关抄送
圈组各端接口命名差异
融合存储方案
uniapp 推送相关
最佳实践
聊天室重要消息投递
API 参考
NIM SDK API 参考
状态码
IM 控制台指南
创建应用
注册 IM 账号
升级服务
服务协议

聊天室消息管理

更新时间: 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)  // [{…}, {…}, {…}] 聊天室消息数组
此文档是否对你有帮助?
有帮助
我要吐槽
  • 技术原理
  • 前提条件
  • 实现方法
  • 实现聊天室消息收发
  • 查询聊天室历史消息
  • 根据标签查询历史消息