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

floo::BMXChatService#

聊天Service

#include <bmx_chat_service.h>

Public Types#

Name
enum classThumbnailStrategy { ThirdpartyServerCreate = 1, LocalServerCreate}
缩略图生成策略,

Public Functions#

Name
virtual~BMXChatService()
virtual voidsendMessage(BMXMessagePtr msg) =0
发送消息,消息状态变化会通过listener通知
virtual voidresendMessage(BMXMessagePtr msg) =0
重新发送消息,消息状态变化会通过listener通知
virtual voidrecallMessage(BMXMessagePtr msg) =0
撤回消息,消息状态变化会通过listener通知
virtual BMXErrorCodeforwardMessage(const BMXMessageList & list, BMXConversationPtr to, BMXMessagePtr & newMsg) =0
合并转发消息
virtual voidforwardMessage(BMXMessagePtr msg) =0
简单转发消息,用户应当通过BMXMessage::createForwardMessage()先创建转发消息
virtual voidackMessage(BMXMessagePtr msg) =0
发送已读回执
virtual voidackMessageDelivered(BMXMessagePtr msg) =0
发送送达回执
virtual voidackPlayMessage(BMXMessagePtr msg) =0
发送音频/视频消息已播放回执
virtual voidreadCancel(BMXMessagePtr msg) =0
标记此消息为未读,该消息同步到当前用户的所有设备
virtual voidreadAllMessage(BMXMessagePtr msg) =0
标记此消息及之前全部消息为已读,该消息同步到当前用户的所有设备
virtual voidremoveMessage(BMXMessagePtr msg, bool synchronize =true) =0
删除此消息,该消息同步到当前用户的其它设备
virtual voiddownloadThumbnail(BMXMessagePtr msg, ThumbnailStrategy strategy =ThumbnailStrategy::ThirdpartyServerCreate) =0
下载缩略图,下载状态变化和进度通过listener通知 缩略图生成策略,1 - 第三方服务器生成, 2 - 本地服务器生成,默认值是 1。
virtual voiddownloadAttachment(BMXMessagePtr msg) =0
下载附件,下载状态变化和进度通过listener通知
virtual voiddownloadAttachmentByUrl(int64_t msgId, const std::string & url, const std::string & path) =0
下载附件,下载状态变化和进度通过listener通知
virtual voidcancelUploadAttachment(BMXMessagePtr msg) =0
取消上传附件
virtual voidcancelDownloadAttachment(BMXMessagePtr msg) =0
取消下载附件
virtual inttransferingNum() =0
上传或下载中的文件数
virtual BMXErrorCodeinsertMessages(const BMXMessageList & list) =0
插入消息
virtual BMXMessagePtrgetMessage(int64_t msgId) =0
读取一条消息
virtual voiddeleteConversation(int64_t conversationId, bool synchronize =false) =0
删除会话
virtual BMXConversationPtropenConversation(int64_t conversationId, BMXConversation::Type type, bool createIfNotExist =true) =0
打开一个会话
virtual std::stringattachmentDir() =0
获取附件保存路径
virtual std::stringattachmentDirForConversation(int64_t conversationId) =0
获取会话的附件保存路径
virtual BMXConversationListgetAllConversations() =0
获取所有会话
virtual intgetAllConversationsUnreadCount() =0
获取所有会话的全部未读数(标记为屏蔽的个人和群组的未读数不统计在内)
virtual BMXErrorCoderetrieveHistoryMessages(BMXConversationPtr conversation, int64_t refMsgId, size_t size, BMXMessageList & result) =0
拉取历史消息
virtual BMXErrorCodesearchMessagesByKeyWords(const std::string & keywords, int64_t refTime, size_t size, std::vector< BMXMessageList > & result, BMXConversation::Direction =BMXConversation::Direction::Up) =0
使用关键字搜索消息
virtual BMXErrorCodesearchMessages(const std::string & keywords, int64_t refTime, size_t size, std::vector< BMXMessageList > & result, BMXConversation::Direction =BMXConversation::Direction::Up) =0
Deprecated.
virtual BMXErrorCodegetGroupAckMessageUserIdList(BMXMessagePtr msg, std::vector< int64_t > & groupMemberIdList) =0
获取发送的群组消息已读用户id列表
virtual BMXErrorCodegetGroupAckMessageUnreadUserIdList(BMXMessagePtr msg, std::vector< int64_t > & groupMemberIdList) =0
获取发送的群组消息未读用户id列表
virtual BMXErrorCodegetGroupPlayAckMessageUserIdList(BMXMessagePtr msg, std::vector< int64_t > & groupMemberIdList) =0
获取发送的群组音频/视频消息已播放用户id列表(仅用于音频/视频消息)
virtual BMXErrorCodegetGroupUnPlayAckMessageUserIdList(BMXMessagePtr msg, std::vector< int64_t > & groupMemberIdList) =0
获取发送的群组音频/视频消息未播放用户id列表(仅用于音频/视频消息)
virtual voidaddChatListener(BMXChatServiceListener * listener) =0
添加聊天监听者
virtual voidremoveChatListener(BMXChatServiceListener * listener) =0
移除聊天监听者

Protected Functions#

Name
BMXChatService()
voidupdateMessageId(BMXMessagePtr msg, int64_t newId)

Public Types Documentation#

enum ThumbnailStrategy#

EnumeratorValueDescription
ThirdpartyServerCreate1第三方服务器生成
LocalServerCreate本地服务器生成

缩略图生成策略,

Public Functions Documentation#

function ~BMXChatService#

inline virtual ~BMXChatService()

Example:

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

function sendMessage#

virtual void sendMessage(
    BMXMessagePtr msg
) =0

发送消息,消息状态变化会通过listener通知

Parameters:

  • msg 发送的消息

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="sendMessage" %}{% endlanying_code_snippet %}

function resendMessage#

virtual void resendMessage(
    BMXMessagePtr msg
) =0

重新发送消息,消息状态变化会通过listener通知

Parameters:

  • msg 重新发送的消息

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="resendMessage" %}{% endlanying_code_snippet %}

function recallMessage#

virtual void recallMessage(
    BMXMessagePtr msg
) =0

撤回消息,消息状态变化会通过listener通知

Parameters:

  • msg 撤回的消息

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="recallMessage" %}{% endlanying_code_snippet %}

function forwardMessage#

virtual BMXErrorCode forwardMessage(
    const BMXMessageList & list,
    BMXConversationPtr to,
    BMXMessagePtr & newMsg
) =0

合并转发消息

Parameters:

  • list 转发的消息列表
  • to 消息被转发到的会话
  • newMsg 转发的消息列表合并后生成的新的单条转发消息

Return: BMXErrorCode

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="forwardMessage" %}{% endlanying_code_snippet %}

function forwardMessage#

virtual void forwardMessage(
    BMXMessagePtr msg
) =0

简单转发消息,用户应当通过BMXMessage::createForwardMessage()先创建转发消息

Parameters:

  • msg 转发的消息

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="forwardMessage" %}{% endlanying_code_snippet %}

function ackMessage#

virtual void ackMessage(
    BMXMessagePtr msg
) =0

发送已读回执

Parameters:

  • msg 需要发送已读回执的消息

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="ackMessage" %}{% endlanying_code_snippet %}

function ackMessageDelivered#

virtual void ackMessageDelivered(
    BMXMessagePtr msg
) =0

发送送达回执

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="ackMessageDelivered" %}{% endlanying_code_snippet %}

function ackPlayMessage#

virtual void ackPlayMessage(
    BMXMessagePtr msg
) =0

发送音频/视频消息已播放回执

Parameters:

  • msg 需要发送已读回执的消息

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="ackPlayMessage" %}{% endlanying_code_snippet %}

function readCancel#

virtual void readCancel(
    BMXMessagePtr msg
) =0

标记此消息为未读,该消息同步到当前用户的所有设备

Parameters:

  • msg 需要发送消息已读取消的消息

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="readCancel" %}{% endlanying_code_snippet %}

function readAllMessage#

virtual void readAllMessage(
    BMXMessagePtr msg
) =0

标记此消息及之前全部消息为已读,该消息同步到当前用户的所有设备

Parameters:

  • msg 需要标记为此消息以前全部消息为已读的消息

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="readAllMessage" %}{% endlanying_code_snippet %}

function removeMessage#

virtual void removeMessage(
    BMXMessagePtr msg,
    bool synchronize =true
) =0

删除此消息,该消息同步到当前用户的其它设备

Parameters:

  • msg 需要删除的消息
  • synchronize 是否同步到其它设备,不同步的情况下只会删除本地存储的该条消息

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="removeMessage" %}{% endlanying_code_snippet %}

function downloadThumbnail#

virtual void downloadThumbnail(
    BMXMessagePtr msg,
    ThumbnailStrategy strategy =ThumbnailStrategy::ThirdpartyServerCreate
) =0

下载缩略图,下载状态变化和进度通过listener通知 缩略图生成策略,1 - 第三方服务器生成, 2 - 本地服务器生成,默认值是 1。

Parameters:

  • msg 需要下载缩略图的消息
  • strategy 缩略图生成策略,1 - 第三方服务器生成, 2 - 本地服务器生成,默认值是 1。

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="downloadThumbnail" %}{% endlanying_code_snippet %}

function downloadAttachment#

virtual void downloadAttachment(
    BMXMessagePtr msg
) =0

下载附件,下载状态变化和进度通过listener通知

Parameters:

  • msg 需要下载附件的消息

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="downloadAttachment" %}{% endlanying_code_snippet %}

function downloadAttachmentByUrl#

virtual void downloadAttachmentByUrl(
    int64_t msgId,
    const std::string & url,
    const std::string & path
) =0

下载附件,下载状态变化和进度通过listener通知

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="downloadAttachmentByUrl" %}{% endlanying_code_snippet %}

function cancelUploadAttachment#

virtual void cancelUploadAttachment(
    BMXMessagePtr msg
) =0

取消上传附件

Parameters:

  • msg 需要取消上传附件的消息

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="cancelUploadAttachment" %}{% endlanying_code_snippet %}

function cancelDownloadAttachment#

virtual void cancelDownloadAttachment(
    BMXMessagePtr msg
) =0

取消下载附件

Parameters:

  • msg 需要取消下载附件的消息

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="cancelDownloadAttachment" %}{% endlanying_code_snippet %}

function transferingNum#

virtual int transferingNum() =0

上传或下载中的文件数

Return: 文件数

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="transferingNum" %}{% endlanying_code_snippet %}

function insertMessages#

virtual BMXErrorCode insertMessages(
    const BMXMessageList & list
) =0

插入消息

Parameters:

  • list 插入消息列表

Return: BMXErrorCode

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="insertMessages" %}{% endlanying_code_snippet %}

function getMessage#

virtual BMXMessagePtr getMessage(
    int64_t msgId
) =0

读取一条消息

Parameters:

  • msgId 需要获取消息的消息id

Return: BMXMessagePtr

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="getMessage" %}{% endlanying_code_snippet %}

function deleteConversation#

virtual void deleteConversation(
    int64_t conversationId,
    bool synchronize =false
) =0

删除会话

Parameters:

  • conversationId 需要删除会话的会话id
  • synchronize 是否同步删除其它设备该会话,默认为false,仅删除本设备会话

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="deleteConversation" %}{% endlanying_code_snippet %}

function openConversation#

virtual BMXConversationPtr openConversation(
    int64_t conversationId,
    BMXConversation::Type type,
    bool createIfNotExist =true
) =0

打开一个会话

Parameters:

  • conversationId 需要打开的会话的会话id
  • type 会话的类型,单聊还是群聊。
  • createIfNotExist 会话不存在的情况下是否要创建本地会话,默认为创建

Return: BMXConversationPtr

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="openConversation" %}{% endlanying_code_snippet %}

function attachmentDir#

virtual std::string attachmentDir() =0

获取附件保存路径

Return: std::string

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="attachmentDir" %}{% endlanying_code_snippet %}

function attachmentDirForConversation#

virtual std::string attachmentDirForConversation(
    int64_t conversationId
) =0

获取会话的附件保存路径

Parameters:

  • conversationId 需要获取会话附件路径的会话id

Return: std::string

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="attachmentDirForConversation" %}{% endlanying_code_snippet %}

function getAllConversations#

virtual BMXConversationList getAllConversations() =0

获取所有会话

Return: BMXConversationList

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="getAllConversations" %}{% endlanying_code_snippet %}

function getAllConversationsUnreadCount#

virtual int getAllConversationsUnreadCount() =0

获取所有会话的全部未读数(标记为屏蔽的个人和群组的未读数不统计在内)

Return: int

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="getAllConversationsUnreadCount" %}{% endlanying_code_snippet %}

function retrieveHistoryMessages#

virtual BMXErrorCode retrieveHistoryMessages(
    BMXConversationPtr conversation,
    int64_t refMsgId,
    size_t size,
    BMXMessageList & result
) =0

拉取历史消息

Parameters:

  • conversation 需要拉取历史消息的会话
  • refMsgId 拉取会话消息的起始消息Id
  • size 拉取的最大消息条数
  • result 拉取操作获取的消息列表,外部初始化传入空列表。

Return: BMXErrorCode

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="retrieveHistoryMessages" %}{% endlanying_code_snippet %}

function searchMessagesByKeyWords#

virtual BMXErrorCode searchMessagesByKeyWords(
    const std::string & keywords,
    int64_t refTime,
    size_t size,
    std::vector< BMXMessageList > & result,
    BMXConversation::Direction  =BMXConversation::Direction::Up
) =0

使用关键字搜索消息

Parameters:

  • keywords 搜索的关键字
  • refTime 搜索消息的起始时间
  • size 搜索的最大消息条数
  • result 搜索到的消息结果列表,外部初始化传入空列表。
  • Direction 消息搜索方向,默认(Direction::Up)是从更早的消息中搜索

Return: BMXErrorCode

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="searchMessagesByKeyWords" %}{% endlanying_code_snippet %}

function searchMessages#

virtual BMXErrorCode searchMessages(
    const std::string & keywords,
    int64_t refTime,
    size_t size,
    std::vector< BMXMessageList > & result,
    BMXConversation::Direction  =BMXConversation::Direction::Up
) =0

Deprecated.

Parameters:

  • keywords 搜索的关键字
  • refTime 搜索消息的起始时间
  • size 搜索的最大消息条数
  • result 搜索到的消息结果列表,外部初始化传入空列表。
  • Direction 消息搜索方向,默认(Direction::Up)是从更早的消息中搜索

Return: BMXErrorCode

use searchMessagesByKeyWords instead.

搜索消息

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="searchMessages" %}{% endlanying_code_snippet %}

function getGroupAckMessageUserIdList#

virtual BMXErrorCode getGroupAckMessageUserIdList(
    BMXMessagePtr msg,
    std::vector< int64_t > & groupMemberIdList
) =0

获取发送的群组消息已读用户id列表

Parameters:

  • msg 需要获取已读用户id列表的消息
  • groupMemberIdList 对该条消息已读的用户id列表,初始传入为空列表

Return: BMXErrorCode

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="getGroupAckMessageUserIdList" %}{% endlanying_code_snippet %}

function getGroupAckMessageUnreadUserIdList#

virtual BMXErrorCode getGroupAckMessageUnreadUserIdList(
    BMXMessagePtr msg,
    std::vector< int64_t > & groupMemberIdList
) =0

获取发送的群组消息未读用户id列表

Parameters:

  • msg 需要获取未读用户id列表的消息
  • groupMemberIdList 对该条消息未读的用户id列表,初始传入为空列表

Return: BMXErrorCode

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="getGroupAckMessageUnreadUserIdList" %}{% endlanying_code_snippet %}

function getGroupPlayAckMessageUserIdList#

virtual BMXErrorCode getGroupPlayAckMessageUserIdList(
    BMXMessagePtr msg,
    std::vector< int64_t > & groupMemberIdList
) =0

获取发送的群组音频/视频消息已播放用户id列表(仅用于音频/视频消息)

Parameters:

  • msg 需要获取已播放用户id列表的消息
  • groupMemberIdList 对该条消息已播放的用户id列表,初始传入为空列表

Return: BMXErrorCode

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="getGroupPlayAckMessageUserIdList" %}{% endlanying_code_snippet %}

function getGroupUnPlayAckMessageUserIdList#

virtual BMXErrorCode getGroupUnPlayAckMessageUserIdList(
    BMXMessagePtr msg,
    std::vector< int64_t > & groupMemberIdList
) =0

获取发送的群组音频/视频消息未播放用户id列表(仅用于音频/视频消息)

Parameters:

  • msg 需要获取未播放用户id列表的消息
  • groupMemberIdList 对该条消息未播放的用户id列表,初始传入为空列表

Return: BMXErrorCode

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="getGroupUnPlayAckMessageUserIdList" %}{% endlanying_code_snippet %}

function addChatListener#

virtual void addChatListener(
    BMXChatServiceListener * listener
) =0

添加聊天监听者

Parameters:

  • listener 聊天监听者

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="addChatListener" %}{% endlanying_code_snippet %}

function removeChatListener#

virtual void removeChatListener(
    BMXChatServiceListener * listener
) =0

移除聊天监听者

Parameters:

  • listener 聊天监听者

Protected Functions Documentation#

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="removeChatListener" %}{% endlanying_code_snippet %}

function BMXChatService#

inline BMXChatService()

Example:

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

function updateMessageId#

void updateMessageId(
    BMXMessagePtr msg,
    int64_t newId
)

Example:

{% lanying_code_snippet repo="lanying-im-embedded",class="BMXChatService",function="updateMessageId" %}{% endlanying_code_snippet %}

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

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