蓝莺开发者
Web & Mini ProgramiOSAndroidC++Server API

floo::BMXMessage#

消息

#include <bmx_message.h>

Inherits from BMXBaseObject

Public Types#

Name
enum classDeliveryStatus { New, Delivering, Deliveried, Failed, Recalled}
消息投递状态
enum classMessageType { Single, Group, System}
消息类型
enum classContentType { Text, Image, Voice, Video, File, Location, Command, Forward}
消息内容类型
enum classDeliveryQos { AtLastOnce, AtMostOnce, ExactlyOnce}
消息投递质量

Public Functions#

Name
virtual~BMXMessage()
析构函数
int64_tmsgId()
消息唯一ID
int64_tclientMsgId()
消息客户端ID,仅在消息发送端存在
int64_tfromId()
消息发送方ID
int64_ttoId()
消息接收方ID
MessageTypetype()
消息类型
int64_tconversationId()
消息所属会话ID
DeliveryStatusdeliveryStatus()
消息投递状态
voidsetDeliveryStatus(DeliveryStatus )
设置消息投递状态
int64_tserverTimestamp()
消息时间戳(服务端收到时的时间)
voidsetServerTimestamp(int64_t )
设置时间戳(服务端收到时的时间)
int64_tclientTimestamp()
本地时间戳(消息创建或者收到时的本地时间)
voidsetClientTimestamp(int64_t )
设置消息本地时间戳
boolisPlayed()
语音或者视频消息是否播放过,仅对收到的音视频消息有效
voidsetIsPlayed(bool )
设置语音或者视频消息是否播放过,仅对收到的音视频消息有效
boolisPlayAcked()
对于发送方表示是否收到了已播放回执,对于接收方表示是否发送了已播放回执
voidsetIsPlayAcked(bool )
设置已播放回执
boolisReceiveMsg()
是否接收的消息
voidsetIsReceiveMsg(bool )
设置是否接收的消息
boolisRead()
消息是否已读标志
voidsetIsRead(bool )
消息是否已读标志
boolisReadAcked()
对于发送方表示是否收到了已读回执,对于接收方表示是否发送了已读回执
voidsetIsReadAcked(bool )
设置已读回执
boolisDeliveryAcked()
对于发送方表示消息是否已投递到对方,对于接收方表示是否发送了消息已到达回执
voidsetIsDeliveryAcked(bool )
设置投递回执
const std::string &content()
消息文本内容
voidsetContent(const std::string & content)
消息文本内容
ContentTypecontentType()
消息内容类型,如果带附件就表示附件类型,不带附件就是文本类型
BMXMessageAttachmentPtrattachment()
消息附件,BMXMessage拥有附件的所有权,负责释放
BMXMessageConfigPtrconfig()
消息的配置信息
voidsetConfig(BMXMessageConfigPtr )
设置消息配置信息
const JSON &extension()
消息扩展信息
voidsetExtension(const JSON & )
设置消息扩展信息
DeliveryQosdeliveryQos()
消息投递QOS
voidsetDeliveryQos(DeliveryQos qos)
设置消息投递QOS
const std::string &senderName()
消息发送者的显示名称
voidsetSenderName(const std::string & senderName)
设置消息的发送者显示名称
intgroupAckCount()
群消息已读AckCount数目
voidsetGroupAckCount(int count)
设置消息已读groupAckCount数目(SDK 内部调用接口,上层不应该调用)
intgroupAckUnreadCount()
群消息未读AckCount数目
voidsetGroupAckUnreadCount(int count)
设置消息未读groupAckCount数目(SDK 内部调用接口,上层不应该调用)
boolgroupAckReadAll()
群消息是否全部已读
intgroupPlayAckCount()
群消息已播放AckCount数目(仅用于音频/视频附件消息)
voidsetGroupPlayAckCount(int count)
设置消息已播放groupAckCount数目(SDK 内部调用接口,上层不应该调用)(仅用于音频/视频附件消息)
intgroupPlayAckUnreadCount()
群消息未播放AckCount数目(仅用于音频/视频附件消息)
voidsetGroupPlayAckUnreadCount(int count)
设置消息未播放groupAckCount数目(SDK 内部调用接口,上层不应该调用)(仅用于音频/视频附件消息)
boolgroupPlayAckReadAll()
群消息是否全部已播放
voidsetPriority(int priority)
设置消息的扩散优先级,默认为0。0表示扩散,数字越小扩散的越多。
intpriority()
消息的扩散优先级
voidsetPushMessageMode(bool )
设置消息是否为推送消息。
boolisPushMessage()
消息是否是推送消息
BMXMessagePtrcreateMessage(int64_t from, int64_t to, MessageType type, int64_t conversationId, const std::string & content)
创建发送文本消息
BMXMessagePtrcreateMessage(int64_t from, int64_t to, MessageType type, int64_t conversationId, BMXMessageAttachmentPtr attachment)
创建发送附件消息
BMXMessagePtrcreateCommandMessage(int64_t from, int64_t to, MessageType type, int64_t conversationId, const std::string & content)
创建发送命令消息(命令消息通过content字段或者extension字段存放命令信息)
BMXMessagePtrcreateMessage(int64_t msgId, int64_t from, int64_t to, MessageType type, int64_t conversationId, const std::string & content, int64_t serverTimestamp)
创建收到的消息
BMXMessagePtrcreateMessage(int64_t msgId, int64_t from, int64_t to, MessageType type, int64_t conversationId, BMXMessageAttachmentPtr attachment, int64_t serverTimestamp)
创建收到的消息
BMXMessagePtrcreateCommandMessage(int64_t msgId, int64_t from, int64_t to, MessageType type, int64_t conversationId, const std::string & content, int64_t serverTimestamp)
创建收到的命令消息(命令消息通过content字段或者extension字段存放命令信息)
BMXMessagePtrcreateForwardMessage(BMXMessagePtr msg, int64_t from, int64_t to, MessageType type, int64_t conversationId)
创建转发消息

Public Types Documentation#

enum DeliveryStatus#

EnumeratorValueDescription
New新创建消息
Delivering消息投递中
Deliveried消息已投递
Failed消息投递失败
Recalled消息已撤回

消息投递状态

enum MessageType#

EnumeratorValueDescription
Single单聊消息
Group群聊消息
System系统消息

消息类型

enum ContentType#

EnumeratorValueDescription
Text文本消息
Image图片消息
Voice语音消息
Video视频片段消息
File文件消息
Location位置消息
Command命令消息
Forward转发消息

消息内容类型

enum DeliveryQos#

EnumeratorValueDescription
AtLastOnce最少投递一次
AtMostOnce最多投递一次
ExactlyOnce仅投递一次

消息投递质量

Public Functions Documentation#

function ~BMXMessage#

virtual ~BMXMessage()

析构函数

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="~BMXMessage" %}{% endlanying_code_snippet %}

function msgId#

int64_t msgId()

消息唯一ID

Return: int64_t

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="msgId" %}{% endlanying_code_snippet %}

function clientMsgId#

int64_t clientMsgId()

消息客户端ID,仅在消息发送端存在

Return: int64_t

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="clientMsgId" %}{% endlanying_code_snippet %}

function fromId#

int64_t fromId()

消息发送方ID

Return: int64_t

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="fromId" %}{% endlanying_code_snippet %}

function toId#

int64_t toId()

消息接收方ID

Return: int64_t

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="toId" %}{% endlanying_code_snippet %}

function type#

MessageType type()

消息类型

Return: MessageType

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="type" %}{% endlanying_code_snippet %}

function conversationId#

int64_t conversationId()

消息所属会话ID

Return: int64_t

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="conversationId" %}{% endlanying_code_snippet %}

function deliveryStatus#

DeliveryStatus deliveryStatus()

消息投递状态

Return: DeliveryStatus

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="deliveryStatus" %}{% endlanying_code_snippet %}

function setDeliveryStatus#

void setDeliveryStatus(
    DeliveryStatus 
)

设置消息投递状态

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setDeliveryStatus" %}{% endlanying_code_snippet %}

function serverTimestamp#

int64_t serverTimestamp()

消息时间戳(服务端收到时的时间)

Return: int64_t

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="serverTimestamp" %}{% endlanying_code_snippet %}

function setServerTimestamp#

void setServerTimestamp(
    int64_t 
)

设置时间戳(服务端收到时的时间)

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setServerTimestamp" %}{% endlanying_code_snippet %}

function clientTimestamp#

int64_t clientTimestamp()

本地时间戳(消息创建或者收到时的本地时间)

Return: int64_t

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="clientTimestamp" %}{% endlanying_code_snippet %}

function setClientTimestamp#

void setClientTimestamp(
    int64_t 
)

设置消息本地时间戳

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setClientTimestamp" %}{% endlanying_code_snippet %}

function isPlayed#

bool isPlayed()

语音或者视频消息是否播放过,仅对收到的音视频消息有效

Return: bool

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="isPlayed" %}{% endlanying_code_snippet %}

function setIsPlayed#

void setIsPlayed(
    bool 
)

设置语音或者视频消息是否播放过,仅对收到的音视频消息有效

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setIsPlayed" %}{% endlanying_code_snippet %}

function isPlayAcked#

bool isPlayAcked()

对于发送方表示是否收到了已播放回执,对于接收方表示是否发送了已播放回执

Return: bool

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="isPlayAcked" %}{% endlanying_code_snippet %}

function setIsPlayAcked#

void setIsPlayAcked(
    bool 
)

设置已播放回执

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setIsPlayAcked" %}{% endlanying_code_snippet %}

function isReceiveMsg#

bool isReceiveMsg()

是否接收的消息

Return: bool

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="isReceiveMsg" %}{% endlanying_code_snippet %}

function setIsReceiveMsg#

void setIsReceiveMsg(
    bool 
)

设置是否接收的消息

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setIsReceiveMsg" %}{% endlanying_code_snippet %}

function isRead#

bool isRead()

消息是否已读标志

Return: bool

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="isRead" %}{% endlanying_code_snippet %}

function setIsRead#

void setIsRead(
    bool 
)

消息是否已读标志

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setIsRead" %}{% endlanying_code_snippet %}

function isReadAcked#

bool isReadAcked()

对于发送方表示是否收到了已读回执,对于接收方表示是否发送了已读回执

Return: bool

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="isReadAcked" %}{% endlanying_code_snippet %}

function setIsReadAcked#

void setIsReadAcked(
    bool 
)

设置已读回执

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setIsReadAcked" %}{% endlanying_code_snippet %}

function isDeliveryAcked#

bool isDeliveryAcked()

对于发送方表示消息是否已投递到对方,对于接收方表示是否发送了消息已到达回执

Return: bool

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="isDeliveryAcked" %}{% endlanying_code_snippet %}

function setIsDeliveryAcked#

void setIsDeliveryAcked(
    bool 
)

设置投递回执

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setIsDeliveryAcked" %}{% endlanying_code_snippet %}

function content#

const std::string & content()

消息文本内容

Return: std::string

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="content" %}{% endlanying_code_snippet %}

function setContent#

void setContent(
    const std::string & content
)

消息文本内容

Parameters:

  • content 消息文本内容

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setContent" %}{% endlanying_code_snippet %}

function contentType#

ContentType contentType()

消息内容类型,如果带附件就表示附件类型,不带附件就是文本类型

Return: ContentType

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="contentType" %}{% endlanying_code_snippet %}

function attachment#

BMXMessageAttachmentPtr attachment()

消息附件,BMXMessage拥有附件的所有权,负责释放

Return: BMXMessageAttachmentPtr

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="attachment" %}{% endlanying_code_snippet %}

function config#

BMXMessageConfigPtr config()

消息的配置信息

Return: JSON(std::string)

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="config" %}{% endlanying_code_snippet %}

function setConfig#

void setConfig(
    BMXMessageConfigPtr 
)

设置消息配置信息

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setConfig" %}{% endlanying_code_snippet %}

function extension#

const JSON & extension()

消息扩展信息

Return: JSON(std::string)

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="extension" %}{% endlanying_code_snippet %}

function setExtension#

void setExtension(
    const JSON & 
)

设置消息扩展信息

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setExtension" %}{% endlanying_code_snippet %}

function deliveryQos#

DeliveryQos deliveryQos()

消息投递QOS

Return: DeliveryQos

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="deliveryQos" %}{% endlanying_code_snippet %}

function setDeliveryQos#

void setDeliveryQos(
    DeliveryQos qos
)

设置消息投递QOS

Parameters:

  • qos 消息投递QOS

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setDeliveryQos" %}{% endlanying_code_snippet %}

function senderName#

const std::string & senderName()

消息发送者的显示名称

Return: std::string

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="senderName" %}{% endlanying_code_snippet %}

function setSenderName#

void setSenderName(
    const std::string & senderName
)

设置消息的发送者显示名称

Parameters:

  • senderName 消息文本内容

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setSenderName" %}{% endlanying_code_snippet %}

function groupAckCount#

int groupAckCount()

群消息已读AckCount数目

Return: int

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="groupAckCount" %}{% endlanying_code_snippet %}

function setGroupAckCount#

void setGroupAckCount(
    int count
)

设置消息已读groupAckCount数目(SDK 内部调用接口,上层不应该调用)

Parameters:

  • count 设置群消息已读数目

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setGroupAckCount" %}{% endlanying_code_snippet %}

function groupAckUnreadCount#

int groupAckUnreadCount()

群消息未读AckCount数目

Return: int

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="groupAckUnreadCount" %}{% endlanying_code_snippet %}

function setGroupAckUnreadCount#

void setGroupAckUnreadCount(
    int count
)

设置消息未读groupAckCount数目(SDK 内部调用接口,上层不应该调用)

Parameters:

  • count 设置群消息未读数目

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setGroupAckUnreadCount" %}{% endlanying_code_snippet %}

function groupAckReadAll#

bool groupAckReadAll()

群消息是否全部已读

Return: bool

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="groupAckReadAll" %}{% endlanying_code_snippet %}

function groupPlayAckCount#

int groupPlayAckCount()

群消息已播放AckCount数目(仅用于音频/视频附件消息)

Return: int

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="groupPlayAckCount" %}{% endlanying_code_snippet %}

function setGroupPlayAckCount#

void setGroupPlayAckCount(
    int count
)

设置消息已播放groupAckCount数目(SDK 内部调用接口,上层不应该调用)(仅用于音频/视频附件消息)

Parameters:

  • count 设置群消息已读数目

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setGroupPlayAckCount" %}{% endlanying_code_snippet %}

function groupPlayAckUnreadCount#

int groupPlayAckUnreadCount()

群消息未播放AckCount数目(仅用于音频/视频附件消息)

Return: int

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="groupPlayAckUnreadCount" %}{% endlanying_code_snippet %}

function setGroupPlayAckUnreadCount#

void setGroupPlayAckUnreadCount(
    int count
)

设置消息未播放groupAckCount数目(SDK 内部调用接口,上层不应该调用)(仅用于音频/视频附件消息)

Parameters:

  • count 设置群消息未播放数目

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setGroupPlayAckUnreadCount" %}{% endlanying_code_snippet %}

function groupPlayAckReadAll#

bool groupPlayAckReadAll()

群消息是否全部已播放

Return: bool

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="groupPlayAckReadAll" %}{% endlanying_code_snippet %}

function setPriority#

void setPriority(
    int priority
)

设置消息的扩散优先级,默认为0。0表示扩散,数字越小扩散的越多。

Parameters:

  • priority 设置群消息未读数目

取值范围0-10。普通人在聊天室发送的消息级别默认为5,可以丢弃。管理员默认为0不会丢弃。其它值可以根据业务自行设置。

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setPriority" %}{% endlanying_code_snippet %}

function priority#

int priority()

消息的扩散优先级

Return: int

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="priority" %}{% endlanying_code_snippet %}

function setPushMessageMode#

void setPushMessageMode(
    bool 
)

设置消息是否为推送消息。

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="setPushMessageMode" %}{% endlanying_code_snippet %}

function isPushMessage#

bool isPushMessage()

消息是否是推送消息

Return: bool

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="isPushMessage" %}{% endlanying_code_snippet %}

function createMessage#

static BMXMessagePtr createMessage(
    int64_t from,
    int64_t to,
    MessageType type,
    int64_t conversationId,
    const std::string & content
)

创建发送文本消息

Parameters:

  • from 消息发送者
  • to 消息接收者
  • type 消息类型
  • conversationId 会话id
  • content 消息内容

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="createMessage" %}{% endlanying_code_snippet %}

function createMessage#

static BMXMessagePtr createMessage(
    int64_t from,
    int64_t to,
    MessageType type,
    int64_t conversationId,
    BMXMessageAttachmentPtr attachment
)

创建发送附件消息

Parameters:

  • from 消息发送者
  • to 消息接收者
  • type 消息类型
  • conversationId 会话id
  • attachment 附件

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="createMessage" %}{% endlanying_code_snippet %}

function createCommandMessage#

static BMXMessagePtr createCommandMessage(
    int64_t from,
    int64_t to,
    MessageType type,
    int64_t conversationId,
    const std::string & content
)

创建发送命令消息(命令消息通过content字段或者extension字段存放命令信息)

Parameters:

  • from 消息发送者
  • to 消息接收者
  • type 消息类型
  • conversationId 会话id
  • content 消息内容

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="createCommandMessage" %}{% endlanying_code_snippet %}

function createMessage#

static BMXMessagePtr createMessage(
    int64_t msgId,
    int64_t from,
    int64_t to,
    MessageType type,
    int64_t conversationId,
    const std::string & content,
    int64_t serverTimestamp
)

创建收到的消息

Parameters:

  • msgId 消息id
  • from 消息发送者
  • to 消息接收者
  • type 消息类型
  • conversationId 会话id
  • content 消息内容
  • serverTimestamp 服务器时间戳

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="createMessage" %}{% endlanying_code_snippet %}

function createMessage#

static BMXMessagePtr createMessage(
    int64_t msgId,
    int64_t from,
    int64_t to,
    MessageType type,
    int64_t conversationId,
    BMXMessageAttachmentPtr attachment,
    int64_t serverTimestamp
)

创建收到的消息

Parameters:

  • msgId 消息id
  • from 消息发送者
  • to 消息接收者
  • type 消息类型
  • conversationId 会话id
  • attachment 附件
  • serverTimestamp 服务器时间戳

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="createMessage" %}{% endlanying_code_snippet %}

function createCommandMessage#

static BMXMessagePtr createCommandMessage(
    int64_t msgId,
    int64_t from,
    int64_t to,
    MessageType type,
    int64_t conversationId,
    const std::string & content,
    int64_t serverTimestamp
)

创建收到的命令消息(命令消息通过content字段或者extension字段存放命令信息)

Parameters:

  • msgId 消息id
  • from 消息发送者
  • to 消息接收者
  • type 消息类型
  • conversationId 会话id
  • content 消息内容
  • serverTimestamp 服务器时间戳

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="createCommandMessage" %}{% endlanying_code_snippet %}

function createForwardMessage#

static BMXMessagePtr createForwardMessage(
    BMXMessagePtr msg,
    int64_t from,
    int64_t to,
    MessageType type,
    int64_t conversationId
)

创建转发消息

Parameters:

  • msg 要转发的消息
  • from 消息发送者
  • to 消息接收者
  • type 消息类型
  • conversationId 会话id

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXMessage",function="createForwardMessage" %}{% endlanying_code_snippet %}

Updated on 2022-01-26 at 17:20:40 +0800

自动生成的 API 内容,仅在必要位置补充精简的 AI 解释。