聊天室消息管理
更新时间: 2024/03/14 19:21:10
本文介绍聊天室消息管理的技术原理、前提条件和实现方法。
技术原理
网易云信 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参数的有效值主要有custom、image、video、audio、file、geo等,分别代表自定义附加信息、图片、视频、音频和地理位置。
前提条件
在实现聊天室消息相关操作前,请确保您已:
实现方法
实现聊天室消息收发
与发送聊天室消息相关的方法见下表。
方法 |
说明 |
|---|---|
| sendTextMsg | 发送文本消息 |
| sendGeoLocationMsg | 发送地理位置消息 |
| sendTipMsg | 发送提醒消息 |
| sendCustomMsg | 发送自定义消息 |
| sendImageMsg | 发送图片消息 |
| sendAudioMsg | 发送音频消息 |
| sendVideoMsg | 发送视频消息 |
| sendFileMsg | 发送文件消息 |
以下为发送和接收消息的示例:
-
A 用户发送一条消息
jsawait chatroom.chatroomMsg.sendTextMsg({ body: 'This is a chatroomMsg' }) -
B 用户处接收
jschatroom.on('chatroomMsg', function(msg) { console.log('收到了消息', msg) }) const msgs = await chatroom.chatroomMsg.queryMessageHistory({ limit: 100 }) console.log(msgs.length) // > 0
查询聊天室历史消息
调用 queryMessageHistory 方法即可查询聊天室历史消息。
示例代码如下:
jsconst 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) // [{…}, {…}, {…}] 聊天室消息数组
此文档是否对你有帮助?






