消息接收
更新时间: 2024/09/09 10:57:10
本文主要介绍如何通过 NERoom SDK 在房间内实现聊天室消息的接收。
功能介绍
消息表示发送方给接收方发送的内容,目前支持文本类型。
消息类型
类型 |
描述 |
---|---|
文本消息 | 文本消息的内容是文本,可以包含超链接、emoji 表情符号等。表情消息是基于文本消息实现的。 文本消息大小限制为 5 KB。 |
多媒体消息 | 多媒体消息包括文件消息和图片消息。 |
功能原理
消息收发流程如下:
- 房间内的用户 A 发送一条消息到云信的 NERoom IM 服务器。
- IM服务器投递给房间内聊天室内的其他成员。如果消息为广播消息,则全员投递,如果为定向消息,则仅投递指定的成员。
- 目标用户收到消息。
注意事项
- 用户只有加入聊天室后,才能接收消息。
- 最新版本可支持文本消息、图片消息以及文件消息,暂不支持语音消息、视频消息等其他类型的消息。
接收文本消息
配置步骤
-
调用
getRoomContext
方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 -
调用
joinChatroom
方法加入聊天室。 -
调用
addRoomListener
方法添加聊天室监听事件。NERoomListenerParams
相关参数说明如下表所示。名称 描述 listener 遵循NERoomListener协议的对象
消息对象字段说明
参考消息对象
示例代码
实现消息接收的示例代码如下:
/**
* 获取房间上下文NERoomContext
* @param roomUuid 房间ID
*/
const NERoomContext = NERoomService.getRoomContext(roomUuid)
NERoomContext.addRoomListener({onReceiveChatroomMessages})
// 收到消息
const onReceiveChatroomMessages = (data) => {
const msg = data.message
console.log('收到聊天室消息:', data.message)
console.log('聊天室消息类型:', msg[0].type)
// 聊天室消息附加信息 memberEnter: 成员进入 memberExit:成员退出
const attachType = msg[0].attach.type
}
接收图片、文件消息
配置步骤
-
调用
getRoomContext
方法获取房间上下文。调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 -
调用
joinChatroom
方法加入聊天室。 -
调用
addRoomListener
方法添加聊天室监听事件。NERoomListenerParams
相关参数说明如下表所示。名称 描述 listener 遵循NERoomListener协议的对象 -
在消息回调中对接收到的消息过滤出图片、文件消息。
onReceiveChatroomMessages(messages)
名称 类型 描述 message NERoomChatMessage 消息的相关信息
消息对象字段说明
参考消息对象
示例代码
实现消息接收的示例代码如下:
/**
* 获取房间上下文NERoomContext
* @param roomUuid 房间ID
*/
const NERoomContext = NERoomService.getRoomContext(roomUuid)
NERoomContext.addRoomListener({onReceiveChatroomMessages})
// 收到消息
const onReceiveChatroomMessages = (data) => {
const msg = data.message
console.log('收到聊天室消息:', data.message)
console.log('聊天室消息类型:', msg[0].type)
// 聊天室消息附加信息 memberEnter: 成员进入 memberExit:成员退出
const attachType = msg[0].attach.type
}
API 参考
方法 | 功能描述 |
---|---|
onReceiveChatroomMessages | 需要先joinChatroom加入聊天室,才能收到聊天室消息。 |
此文档是否对你有帮助?