消息接收

更新时间: 2024/09/09 10:57:10

本文主要介绍如何通过 NERoom SDK 在房间内实现聊天室消息的接收。

功能介绍

消息表示发送方给接收方发送的内容,目前支持文本类型。

消息类型

类型
描述
文本消息 文本消息的内容是文本,可以包含超链接、emoji 表情符号等。表情消息是基于文本消息实现的。 文本消息大小限制为 5 KB。
多媒体消息 多媒体消息包括文件消息和图片消息。

功能原理

消息收发.png

消息收发流程如下

  1. 房间内的用户 A 发送一条消息到云信的 NERoom IM 服务器。
  2. IM服务器投递给房间内聊天室内的其他成员。如果消息为广播消息,则全员投递,如果为定向消息,则仅投递指定的成员。
  3. 目标用户收到消息。

注意事项

  • 用户只有加入聊天室后,才能接收消息。
  • 最新版本可支持文本消息、图片消息以及文件消息,暂不支持语音消息、视频消息等其他类型的消息。

接收文本消息

配置步骤

  1. 调用 getRoomContext 方法获取房间上下文。

    调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。

  2. 调用 joinChatroom 方法加入聊天室。

  3. 调用 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
}

接收图片、文件消息

配置步骤

  1. 调用 getRoomContext 方法获取房间上下文。

    调用此方法时,您需要将 roomUuid 设置为您所加入房间的 ID。

  2. 调用 joinChatroom 方法加入聊天室。

  3. 调用 addRoomListener 方法添加聊天室监听事件。

    NERoomListenerParams 相关参数说明如下表所示。

    名称 描述
    listener 遵循NERoomListener协议的对象
  4. 在消息回调中对接收到的消息过滤出图片、文件消息。

    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加入聊天室,才能收到聊天室消息。
此文档是否对你有帮助?
有帮助
去反馈
  • 功能介绍
  • 消息类型
  • 功能原理
  • 注意事项
  • 接收文本消息
  • 配置步骤
  • 消息对象字段说明
  • 示例代码
  • 接收图片、文件消息
  • 配置步骤
  • 消息对象字段说明
  • 示例代码
  • API 参考