floo::BMXChatService#
聊天Service
#include <bmx_chat_service.h>
Public Types#
| Name | |
|---|---|
| enum class | ThumbnailStrategy { ThirdpartyServerCreate = 1, LocalServerCreate} 縮略圖生成策略, |
Public Functions#
| Name | |
|---|---|
| virtual | ~BMXChatService() |
| virtual void | sendMessage(BMXMessagePtr msg) =0 發送訊息,訊息狀態變化會通過listener通知 |
| virtual void | resendMessage(BMXMessagePtr msg) =0 重新發送訊息,訊息狀態變化會通過listener通知 |
| virtual void | recallMessage(BMXMessagePtr msg) =0 撤回訊息,訊息狀態變化會通過listener通知 |
| virtual BMXErrorCode | forwardMessage(const BMXMessageList & list, BMXConversationPtr to, BMXMessagePtr & newMsg) =0 合併轉發訊息 |
| virtual void | forwardMessage(BMXMessagePtr msg) =0 簡單轉發訊息,使用者應當通過BMXMessage::createForwardMessage()先建立轉發訊息 |
| virtual void | ackMessage(BMXMessagePtr msg) =0 發送已讀回執 |
| virtual void | ackMessageDelivered(BMXMessagePtr msg) =0 發送送達回執 |
| virtual void | ackPlayMessage(BMXMessagePtr msg) =0 發送音訊/視訊訊息已播放回執 |
| virtual void | readCancel(BMXMessagePtr msg) =0 標記此訊息為未讀,該訊息同步到當前使用者的所有設備 |
| virtual void | readAllMessage(BMXMessagePtr msg) =0 標記此訊息及之前全部訊息為已讀,該訊息同步到當前使用者的所有設備 |
| virtual void | removeMessage(BMXMessagePtr msg, bool synchronize =true) =0 刪除此訊息,該訊息同步到當前使用者的其它設備 |
| virtual void | downloadThumbnail(BMXMessagePtr msg, ThumbnailStrategy strategy =ThumbnailStrategy::ThirdpartyServerCreate) =0 下載縮略圖,下載狀態變化和進度通過listener通知 縮略圖生成策略,1 - 第三方伺服器生成, 2 - 本地伺服器生成,預設值是 1。 |
| virtual void | downloadAttachment(BMXMessagePtr msg) =0 下載附件,下載狀態變化和進度通過listener通知 |
| virtual void | downloadAttachmentByUrl(int64_t msgId, const std::string & url, const std::string & path) =0 下載附件,下載狀態變化和進度通過listener通知 |
| virtual void | cancelUploadAttachment(BMXMessagePtr msg) =0 取消上傳附件 |
| virtual void | cancelDownloadAttachment(BMXMessagePtr msg) =0 取消下載附件 |
| virtual int | transferingNum() =0 上傳或下載中的檔案數 |
| virtual BMXErrorCode | insertMessages(const BMXMessageList & list) =0 插入訊息 |
| virtual BMXMessagePtr | getMessage(int64_t msgId) =0 讀取一條訊息 |
| virtual void | deleteConversation(int64_t conversationId, bool synchronize =false) =0 刪除會話 |
| virtual BMXConversationPtr | openConversation(int64_t conversationId, BMXConversation::Type type, bool createIfNotExist =true) =0 打開一個會話 |
| virtual std::string | attachmentDir() =0 取得附件保存路徑 |
| virtual std::string | attachmentDirForConversation(int64_t conversationId) =0 取得會話的附件保存路徑 |
| virtual BMXConversationList | getAllConversations() =0 取得所有會話 |
| virtual int | getAllConversationsUnreadCount() =0 取得所有會話的全部未讀數(標記為屏蔽的個人和群組的未讀數不統計在內) |
| virtual BMXErrorCode | retrieveHistoryMessages(BMXConversationPtr conversation, int64_t refMsgId, size_t size, BMXMessageList & result) =0 拉取歷史訊息 |
| virtual BMXErrorCode | searchMessagesByKeyWords(const std::string & keywords, int64_t refTime, size_t size, std::vector< BMXMessageList > & result, BMXConversation::Direction =BMXConversation::Direction::Up) =0 使用關鍵字搜索訊息 |
| virtual BMXErrorCode | searchMessages(const std::string & keywords, int64_t refTime, size_t size, std::vector< BMXMessageList > & result, BMXConversation::Direction =BMXConversation::Direction::Up) =0 Deprecated. |
| virtual BMXErrorCode | getGroupAckMessageUserIdList(BMXMessagePtr msg, std::vector< int64_t > & groupMemberIdList) =0 取得發送的群組訊息已讀使用者id列表 |
| virtual BMXErrorCode | getGroupAckMessageUnreadUserIdList(BMXMessagePtr msg, std::vector< int64_t > & groupMemberIdList) =0 取得發送的群組訊息未讀使用者id列表 |
| virtual BMXErrorCode | getGroupPlayAckMessageUserIdList(BMXMessagePtr msg, std::vector< int64_t > & groupMemberIdList) =0 取得發送的群組音訊/視訊訊息已播放使用者id列表(僅用於音訊/視訊訊息) |
| virtual BMXErrorCode | getGroupUnPlayAckMessageUserIdList(BMXMessagePtr msg, std::vector< int64_t > & groupMemberIdList) =0 取得發送的群組音訊/視訊訊息未播放使用者id列表(僅用於音訊/視訊訊息) |
| virtual void | addChatListener(BMXChatServiceListener * listener) =0 添加聊天監聽者 |
| virtual void | removeChatListener(BMXChatServiceListener * listener) =0 移除聊天監聽者 |
Protected Functions#
| Name | |
|---|---|
| BMXChatService() | |
| void | updateMessageId(BMXMessagePtr msg, int64_t newId) |
Public Types Documentation#
enum ThumbnailStrategy#
| Enumerator | Value | Description |
|---|---|---|
| ThirdpartyServerCreate | 1 | 第三方伺服器生成 |
| 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