聊天室消息管理
更新时间: 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 用户发送一条消息
js
await chatroom.chatroomMsg.sendTextMsg({ body: 'This is a chatroomMsg' })
-
B 用户处接收
js
chatroom.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) // [{…}, {…}, {…}] 聊天室消息数组
此文档是否对你有帮助?