IMessage

最近更新时间:2022-09-20 05:17:40

Public 成员函数
virtual long longgetMessageId () const =0
virtual MESSAGE_TYPEgetMessageType () const =0
virtual voidsetText (const char *str)=0
virtual const char *getText () const =0
virtual const char *getRawMessageData () const =0
virtual intgetRawMessageLength () const =0
virtual long longgetServerReceivedTs () const =0
virtual boolisOfflineMessage () const =0
virtual voidrelease ()=0
Protected 成员函数
virtual~IMessage ()

构造及析构函数说明

用于主叫的呼叫邀请内容的设置与获取。

构造及析构函数说明

~IMessage()

virtual ~IMessage() {}

成员函数说明

getMessageId

virtual long long getMessageId() const

获取消息 ID。

返回

消息的唯一 ID,在消息对象创建时自动生成。

getMessageType

virtual MESSAGE_TYPE getMessageType() const

获取消息类型

返回

消息类型。详见 MESSAGE_TYPE

getRawMessageData

virtual const char *getRawMessageData() const

获取自定义消息在内存中的首地址。

返回

自定义消息在内存中的首地址。

getRawMessageLength

virtual int getRawMessageLength() const

获取自定义消息的长度。

返回

自定义消息的长度(字节)。

getServerReceivedTs

virtual long long getServerReceivedTs() const

供消息接收者获取消息服务器接收到消息的时间戳。

返回

消息服务器接收到消息的时间戳(毫秒)。

注意事项:

  • 你不能设置时间戳,但是你可以从该时间戳推断出消息的大致发送时间。
  • 时间戳仅用于展示,不建议用于消息的严格排序。

isOfflineMessage

virtual bool isOfflineMessage() const

供消息接收者检查消息是否在服务端被保存过(仅适用于点对点消息)。

返回

  • true: 被保存过(消息服务器保存了该条消息且在对端重新上线后重新发送成功)。
  • false: 未被保存过。

注意事项:

  • 如果消息没有被消息服务器保存过,该方法将返回 false。也就是说:只有当消息发送者通过设置 enableOfflineMessaging=true 发送离线消息且在发送离线消息时对端不在线,对端重新上线后调用该方法会返回 true。
  • 目前我们只为每个接收端保存 200 条离线消息最长七天。当保存的离线消息超出限制时,最老的信息将会被最新的消息替换。

setText

virtual void ar::rtm::IMessage::setText(const char * str) const

设置文本消息正文或自定义二进制消息的文字描述.

参数

参数描述
str待设置的消息正文

返回

消息体

注意事项:

  • 最大长度为 32 KB。如果消息为自定义二进制消息,请确保文字描述和二进制消息的总大小不超过 32 KB。

release

virtual void ar::rtm::IMessage::release() const

释放 IMessage 实例使用的所有资源

注意事项:

  • 对于消息接收者:请在收到 onMessageReceivedonMessageReceivedFromPeer 回调时尽快保存收到的 IMessage 实例内容,因为 SDK 会在回调结束时彻底释放 IMessage 实例造成 IMessage 无法再次获取。

getText

virtual void ar::rtm::IMessage::getText() const

获取文本消息正文或自定义二进制消息的文字描述

返回

文本消息正文或自定义二进制消息的文字描述