IMSDK
即时通信 IM 提供全球接入、单聊、群聊、消息推送、资料关系链托管、帐号鉴权等全方位解决方案,并提供完备的 App 接入、后台管理接口。
V2TIMMessage

详细描述

高级消息

Public 成员函数

 V2TIMMessage ()
 
 V2TIMMessage (const V2TIMMessage &)
 
V2TIMMessageoperator= (const V2TIMMessage &)
 
 ~V2TIMMessage () override
 

成员变量

V2TIMString msgID
 
int64_t timestamp
 
V2TIMString sender
 
V2TIMString nickName
 
V2TIMString friendRemark
 
V2TIMString nameCard
 
V2TIMString faceURL
 
V2TIMString groupID
 
V2TIMString userID
 
uint64_t seq
 
uint64_t random
 
V2TIMMessageStatus status
 
bool isSelf
 
bool isRead
 
bool isPeerRead
 
V2TIMStringVector groupAtUserList
 
V2TIMElemVector elemList
 
V2TIMBuffer localCustomData
 
int localCustomInt
 
V2TIMBuffer cloudCustomData
 
bool isExcludedFromUnreadCount
 
bool isExcludedFromLastMessage
 
void * obj_ptr
 

构造及析构函数说明

◆ V2TIMMessage() [1/2]

◆ V2TIMMessage() [2/2]

V2TIMMessage ( const V2TIMMessage )

◆ ~V2TIMMessage()

~V2TIMMessage ( )
override

成员函数说明

◆ operator=()

V2TIMMessage& operator= ( const V2TIMMessage )

结构体成员变量说明

◆ msgID

V2TIMString msgID

消息 ID(消息创建的时候为空,消息发送的时候会生成)

◆ timestamp

int64_t timestamp

消息时间

◆ sender

V2TIMString sender

消息发送者

◆ nickName

V2TIMString nickName

消息发送者昵称

◆ friendRemark

V2TIMString friendRemark

消息发送者好友备注

◆ nameCard

V2TIMString nameCard

如果是群组消息,nameCard 为发送者的群名片

◆ faceURL

V2TIMString faceURL

消息发送者头像 在 C2C 场景下,陌生人的头像不会实时更新,如需更新陌生人的头像(如在 UI 上点击陌生人头像以展示陌生人信息时), 请调用 V2TIMManager.h -> GetUsersInfo 接口触发信息的拉取。待拉取成功后,SDK 会更新本地头像信息,即 faceURL 字段的内容。

注意
请不要在收到每条消息后都去 GetUsersInfo,会严重影响程序性能。

◆ groupID

V2TIMString groupID

如果是群组消息,groupID 为会话群组 ID,否则为空

◆ userID

V2TIMString userID

如果是单聊消息,userID 为会话用户 ID,否则为空, 假设自己和 userA 聊天,无论是自己发给 userA 的消息还是 userA 发给自己的消息,这里的 userID 均为 userA

◆ seq

uint64_t seq

群聊中的消息序列号云端生成,在群里是严格递增且唯一的, 单聊中的序列号是本地生成,不能保证严格递增且唯一。

◆ random

uint64_t random

消息随机码

◆ status

V2TIMMessageStatus status

消息发送状态

◆ isSelf

bool isSelf

消息发送者是否是自己

◆ isRead

bool isRead

消息自己是否已读

◆ isPeerRead

bool isPeerRead

消息对方是否已读(只有 C2C 消息有效)

◆ groupAtUserList

V2TIMStringVector groupAtUserList

群消息中被 @ 的用户 UserID 列表(即该消息都 @ 了哪些人)

◆ elemList

V2TIMElemVector elemList

消息元素列表

推荐一条消息只存放一个 elem,在收到这条消息时,调用 elemList[0] 获取这个elem,示例代码如下: if (1 == message.elemList.Size()) { V2TIMElem *elem = message.elemList[0]; switch (elem->elemType) { case V2TIM_ELEM_TYPE_TEXT: V2TIMTextElem *textElem = static_cast<V2TIMTextElem *>(elem); break; case V2TIM_ELEM_TYPE_CUSTOM: V2TIMCustomElem *customElem = static_cast<V2TIMCustomElem *>(elem); break; case V2TIM_ELEM_TYPE_FACE: V2TIMFaceElem *faceElem = static_cast<V2TIMFaceElem *>(elem); break; case V2TIM_ELEM_TYPE_LOCATION: V2TIMLocationElem *locationElem = static_cast<V2TIMLocationElem *>(elem); break; default: break; } }

如果一条消息有多个 elem,遍历 elemList 列表,获取全部 elem 元素,示例代码如下: for (size_t i = 0; i < message.elemList.Size(); ++i) { V2TIMElem *elem = message.elemList[i]; switch (elem->elemType) { case V2TIM_ELEM_TYPE_TEXT: V2TIMTextElem *textElem = static_cast<V2TIMTextElem *>(elem); break; case V2TIM_ELEM_TYPE_CUSTOM: V2TIMCustomElem *customElem = static_cast<V2TIMCustomElem *>(elem); break; case V2TIM_ELEM_TYPE_FACE: V2TIMFaceElem *faceElem = static_cast<V2TIMFaceElem *>(elem); break; case V2TIM_ELEM_TYPE_LOCATION: V2TIMLocationElem *locationElem = static_cast<V2TIMLocationElem *>(elem); break; default: break; } }

如果您的一条消息需要多个 elem,可以在创建 Message 对象后,调用 elemList.PushBack 添加新 elem, 以 V2TIMTextElem 和 V2TIMCustomElem 多 elem 为例,示例代码如下: V2TIMCustomElem *customElem = new V2TIMCustomElem(); customElem->data = buffer; V2TIMMessage message = messageManager.CreateTextMessage("text"); message.elemList.PushBack(customElem);

◆ localCustomData

V2TIMBuffer localCustomData

消息自定义数据(本地保存,不会发送到对端,程序卸载重装后失效)

◆ localCustomInt

int localCustomInt

消息自定义数据,可以用来标记语音、视频消息是否已经播放(本地保存,不会发送到对端,程序卸载重装后失效)

◆ cloudCustomData

V2TIMBuffer cloudCustomData

消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到)

◆ isExcludedFromUnreadCount

bool isExcludedFromUnreadCount

消息是否不计入会话未读数:默认为 false,表明需要计入会话未读数,设置为 true,表明不需要计入会话未读数

◆ isExcludedFromLastMessage

bool isExcludedFromLastMessage

消息是否不计入会话 lastMsg:默认为 false,表明需要计入会话 lastMsg,设置为 true,表明不需要计入会话 lastMsg

◆ obj_ptr

void* obj_ptr
inherited