藍鶯開發者
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 解說。