Extends
Members
-
createdAt :Date
-
对话创建时间
- Inherited From:
-
creator :String
-
对话创建者
- Inherited From:
-
id :String
-
对话 id,对应 _Conversation 表中的 objectId
- Inherited From:
-
nullable lastDeliveredAt :Date
-
最后消息送达时间,常用来实现消息的「已送达」标记,可通过 Conversation#fetchReceiptTimestamps 获取或更新该属性
- Since:
- 3.4.0
- Inherited From:
-
nullable lastMessage :Message
-
最后一条消息
- Inherited From:
-
nullable lastMessageAt :Date
-
最后一条消息时间
- Inherited From:
-
nullable lastReadAt :Date
-
最后消息被阅读时间,常用来实现发送消息的「已读」标记,可通过 Conversation#fetchReceiptTimestamps 获取或更新该属性
- Since:
- 3.4.0
- Inherited From:
-
members :Array.<String>
-
参与该对话的用户列表
- Overrides:
-
muted :Boolean
-
当前用户静音该对话标记
- Inherited From:
-
nullable mutedMembers :Array.<String>
-
对该对话设置了静音的用户列表
- Inherited From:
-
name :String
-
对话名字,对应 _Conversation 表中的 name
- Inherited From:
-
system :Boolean
-
系统对话标记
- Since:
- 3.3.0
- Inherited From:
-
transient :Boolean
-
暂态对话标记
- Inherited From:
-
unreadMessagesCount :Number
-
当前用户在该对话的未读消息数
- Inherited From:
-
unreadMessagesMentioned :Boolean
-
当前用户是否在该对话的未读消息中被提及
- Since:
- 4.0.0
- Inherited From:
-
updatedAt :Date
-
对话更新时间
- Inherited From:
Methods
-
add(clientIds) → {Promise.<PartiallySuccess>} [async]
-
增加成员
Parameters:
Name Type Description clientIds
String | Array.<String> 新增成员 client id Returns:
Promise.<PartiallySuccess> - 部分成功结果,包含了成功的 id 列表、失败原因与对应的 id 列表- Inherited From:
-
blockMembers(clientIds) → {Promise.<PartiallySuccess>} [async]
-
将用户加入该对话黑名单
Parameters:
Name Type Description clientIds
String | Array.<String> 成员 client id Returns:
Promise.<PartiallySuccess> - 部分成功结果,包含了成功的 id 列表、失败原因与对应的 id 列表- Inherited From:
-
count() → {Promise.<Number>} [async]
-
获取对话人数,或暂态对话的在线人数
Returns:
Promise.<Number>- Inherited From:
-
createMessagesIterator(optionsopt) → {AsyncIterater.<Promise.<IteratorResult.<Array.<Message>>>>}
-
获取消息翻页迭代器
Parameters:
Name Type Attributes Description options
Object <optional>
Properties
Name Type Attributes Description beforeTime
Date <optional>
限制起始查询结果为小于该时间之前的消息,不传则为当前时间 beforeMessageId
String <optional>
限制起始查询结果为该消息之前的消息,需要与 beforeTime 同时使用,为防止某时刻有重复消息 limit
Number <optional>
限制每页查询结果的数量,目前服务端默认为 20 Returns:
AsyncIterater.<Promise.<IteratorResult.<Array.<Message>>>> - AsyncIterator,调用其 next 方法返回获取下一页消息的 Promise- Inherited From:
Example
var messageIterator = conversation.createMessagesIterator({ limit: 10 }); messageIterator.next().then(function(result) { // result: { // value: [message1, ..., message10], // done: false, // } }); messageIterator.next().then(function(result) { // result: { // value: [message11, ..., message20], // done: false, // } }); messageIterator.next().then(function(result) { // No more messages // result: { value: [], done: true } });
-
fetch() → {Promise.<this>} [async]
-
从服务器更新对话的属性
Returns:
Promise.<this> - self- Inherited From:
-
fetchReceiptTimestamps() → {Promise.<this>} [async]
-
更新对话的最新回执时间戳(lastDeliveredAt、lastReadAt)
Returns:
Promise.<this> - this- Since:
- 3.4.0
- Inherited From:
-
get(key) → {Any}
-
获取对话的自定义属性
Parameters:
Name Type Description key
String key 属性的键名,'x' 对应 Conversation 表中的 x 列 Returns:
Any - 属性的值- Since:
- 3.2.0
- Inherited From:
-
getAllMemberInfo() → {Promise.<Array.<ConversationMemberInfo>>} [async]
-
获取所有成员的对话属性
Returns:
Promise.<Array.<ConversationMemberInfo>> - 所有成员的对话属性列表- Since:
- 4.0.0
-
getMemberInfo(memberId) → {Promise.<ConversationMemberInfo>} [async]
-
获取指定成员的对话属性
Parameters:
Name Type Description memberId
String 成员 Id Returns:
Promise.<ConversationMemberInfo> - 指定成员的对话属性- Since:
- 4.0.0
-
join() → {Promise.<this>} [async]
-
(当前用户)加入该对话
Returns:
Promise.<this> - self- Inherited From:
-
mute() → {Promise.<this>} [async]
-
静音,客户端拒绝收到服务器端的离线推送通知
Returns:
Promise.<this> - self- Inherited From:
-
muteMembers(clientIds) → {Promise.<PartiallySuccess>} [async]
-
在该对话中禁言成员
Parameters:
Name Type Description clientIds
String | Array.<String> 成员 client id Returns:
Promise.<PartiallySuccess> - 部分成功结果,包含了成功的 id 列表、失败原因与对应的 id 列表- Inherited From:
-
queryBlockedMembers(optionsopt) → {PagedResults.<string>} [async]
-
查询该对话黑名单
Parameters:
Name Type Attributes Description options
Object <optional>
Properties
Name Type Attributes Description limit
Number <optional>
返回的成员数量,服务器默认值 10 next
String <optional>
从指定 next 开始查询,与 limit 一起使用可以完成翻页 Returns:
PagedResults.<string> - 查询结果。其中的 cureser 存在表示还有更多结果。- Inherited From:
-
queryMessages(optionsopt) → {Promise.<Array.<Message>>} [async]
-
查询消息记录 如果仅需实现消息向前记录翻页查询需求,建议使用 Conversation#createMessagesIterator。 不论何种方向,获得的消息都是按照时间升序排列的。 startClosed 与 endClosed 用于指定查询区间的开闭。
Parameters:
Name Type Attributes Description options
Object <optional>
Properties
Name Type Attributes Description limit
Number <optional>
限制查询结果的数量,目前服务端默认为 20 type
Number <optional>
指定查询的富媒体消息类型,不指定则查询所有消息。 direction
MessageQueryDirection <optional>
查询的方向。 在不指定的情况下如果 startTime 大于 endTime,则为从新到旧查询,可以实现加载聊天记录等场景。 如果 startTime 小于 endTime,则为从旧到新查询,可以实现弹幕等场景。 startTime
Date <optional>
从该时间开始查询,不传则从当前时间开始查询 startMessageId
String <optional>
从该消息之前开始查询,需要与 startTime 同时使用,为防止某时刻有重复消息 startClosed
Boolean <optional>
指定查询范围是否包括开始的时间点,默认不包括 endTime
Date <optional>
查询到该时间为止,不传则查询最早消息为止 endMessageId
String <optional>
查询到该消息为止,需要与 endTime 同时使用,为防止某时刻有重复消息 endClosed
Boolean <optional>
指定查询范围是否包括结束的时间点,默认不包括 beforeTime
Date <optional>
DEPRECATED: 使用 startTime 代替。限制查询结果为小于该时间之前的消息,不传则为当前时间 beforeMessageId
String <optional>
DEPRECATED: 使用 startMessageId 代替。 限制查询结果为该消息之前的消息,需要与 beforeTime 同时使用,为防止某时刻有重复消息 afterTime
Date <optional>
DEPRECATED: 使用 endTime 代替。限制查询结果为大于该时间之前的消息 afterMessageId
String <optional>
DEPRECATED: 使用 endMessageId 代替。 限制查询结果为该消息之后的消息,需要与 afterTime 同时使用,为防止某时刻有重复消息 Returns:
Promise.<Array.<Message>> - 消息列表- Inherited From:
-
queryMutedMembers(optionsopt) → {PagedResults.<string>} [async]
-
查询该对话禁言成员列表
Parameters:
Name Type Attributes Description options
Object <optional>
Properties
Name Type Attributes Description limit
Number <optional>
返回的成员数量,服务器默认值 10 next
String <optional>
从指定 next 开始查询,与 limit 一起使用可以完成翻页。 Returns:
PagedResults.<string> - 查询结果。其中的 cureser 存在表示还有更多结果。- Inherited From:
-
quit() → {Promise.<this>} [async]
-
(当前用户)退出该对话
Returns:
Promise.<this> - self- Inherited From:
-
read() → {Promise.<this>} [async]
-
将该会话标记为已读
Returns:
Promise.<this> - self- Inherited From:
-
recall(message) → {Promise.<RecalledMessage>} [async]
-
撤回已发送的消息
Parameters:
Name Type Description message
AVMessage 要撤回的消息,该消息必须是由当前用户发送的。也可以提供一个包含消息 {id, timestamp} 的对象 Returns:
Promise.<RecalledMessage> - 一条已撤回的消息- Inherited From:
-
remove(clientIds) → {Promise.<PartiallySuccess>} [async]
-
剔除成员
Parameters:
Name Type Description clientIds
String | Array.<String> 成员 client id Returns:
Promise.<PartiallySuccess> - 部分成功结果,包含了成功的 id 列表、失败原因与对应的 id 列表- Inherited From:
-
save() → {Promise.<this>} [async]
-
保存当前对话的属性至服务器
Returns:
Promise.<this> - self- Inherited From:
-
send(message, optionsopt) → {Promise.<Message>} [async]
-
发送消息
Parameters:
Name Type Attributes Description message
Message 消息,Message 及其子类的实例 options
Object <optional>
since v3.3.0,发送选项 Properties
Name Type Attributes Description transient
Boolean <optional>
since v3.3.1,是否作为暂态消息发送 receipt
Boolean <optional>
是否需要回执,仅在普通对话中有效 will
Boolean <optional>
since v3.4.0,是否指定该消息作为「掉线消息」发送, 「掉线消息」会延迟到当前用户掉线后发送,常用来实现「下线通知」功能 priority
MessagePriority <optional>
消息优先级,仅在暂态对话中有效, see: MessagePriority pushData
Object <optional>
消息对应的离线推送内容,如果消息接收方不在线,会推送指定的内容。其结构说明参见: 推送消息内容 Returns:
Promise.<Message> - 发送的消息- Inherited From:
-
set(key, value) → {this}
-
设置对话的自定义属性
Parameters:
Name Type Description key
String 属性的键名,'x' 对应 Conversation 表中的 x 列,支持使用 'x.y.z' 来修改对象的部分字段。 value
Any 属性的值 Returns:
this - self- Since:
- 3.2.0
- Inherited From:
Example
// 设置对话的 color 属性 conversation.set('color', { text: '#000', background: '#DDD', }); // 设置对话的 color.text 属性 conversation.set('color.text', '#333');
-
toFullJSON() → {Object}
-
返回 JSON 格式的对话,与 toJSON 不同的是,该对象包含了完整的信息,可以通过 IMClient#parseConversation 反序列化。
Returns:
Object - 返回值是一个 plain Object- Since:
- 4.0.0
- Inherited From:
-
toJSON() → {Object}
-
返回 JSON 格式的对话
Returns:
Object - 返回值是一个 plain Object- Since:
- 4.0.0
- Inherited From:
-
unblockMembers(clientIds) → {Promise.<PartiallySuccess>} [async]
-
将用户移出该对话黑名单
Parameters:
Name Type Description clientIds
String | Array.<String> 成员 client id Returns:
Promise.<PartiallySuccess> - 部分成功结果,包含了成功的 id 列表、失败原因与对应的 id 列表- Inherited From:
-
unmute() → {Promise.<this>} [async]
-
取消静音
Returns:
Promise.<this> - self- Inherited From:
-
unmuteMembers(clientIds) → {Promise.<PartiallySuccess>} [async]
-
在该对话中解除成员禁言
Parameters:
Name Type Description clientIds
String | Array.<String> 成员 client id Returns:
Promise.<PartiallySuccess> - 部分成功结果,包含了成功的 id 列表、失败原因与对应的 id 列表- Inherited From:
-
update(message, newMessage) → {Promise.<AVMessage>} [async]
-
修改已发送的消息
Parameters:
Name Type Description message
AVMessage 要修改的消息,该消息必须是由当前用户发送的。也可以提供一个包含消息 {id, timestamp} 的对象 newMessage
AVMessage 新的消息 Returns:
Promise.<AVMessage> - 更新后的消息- Inherited From:
-
updateMemberRole(memberId, role) → {Promise.<this>} [async]
-
更新指定用户的角色
Parameters:
Name Type Description memberId
String 成员 Id role
module:leancloud-realtime.ConversationMemberRole | String 角色 Returns:
Promise.<this> - self- Since:
- 4.0.0
Events
-
BLOCKED
-
当前用户被加入当前对话的黑名单
Parameters:
Name Type Description payload
Object Properties
Name Type Description blockedBy
String 该操作的发起者 id - Inherited From:
-
INFO_UPDATED
-
有对话信息被更新
Parameters:
Name Type Description payload
Object Properties
Name Type Description attributes
Object 被更新的属性 updatedBy
String 该操作的发起者 id - Inherited From:
-
INVITED
-
当前用户被添加至当前对话
Parameters:
Name Type Description payload
Object Properties
Name Type Description invitedBy
String 该移除操作的发起者 id - Inherited From:
-
KICKED
-
当前用户被从当前对话中移除
Parameters:
Name Type Description payload
Object Properties
Name Type Description kickedBy
String 该移除操作的发起者 id - Inherited From:
-
LAST_DELIVERED_AT_UPDATE
-
最后消息送达时间更新
- Since:
- 3.4.0
- Inherited From:
-
LAST_READ_AT_UPDATE
-
最后消息被阅读时间更新
- Since:
- 3.4.0
- Inherited From:
-
MEMBER_INFO_UPDATED
-
有成员的对话信息被更新
Parameters:
Name Type Description payload
Object Properties
Name Type Description member
String 被更新对话信息的成员 id memberInfo
ConversationMumberInfo 被更新的成员对话信息 updatedBy
String 该操作的发起者 id - Inherited From:
-
MEMBERS_BLOCKED
-
有成员被加入当前对话的黑名单
Parameters:
Name Type Description payload
Object Properties
Name Type Description members
Array.<String> 成员 id 列表 blockedBy
String 该操作的发起者 id - Inherited From:
-
MEMBERS_JOINED
-
有成员被添加至当前对话
Parameters:
Name Type Description payload
Object Properties
Name Type Description members
Array.<String> 被添加的成员 id 列表 invitedBy
String 邀请者 id - Inherited From:
-
MEMBERS_LEFT
-
有成员被从当前对话中移除
Parameters:
Name Type Description payload
Object Properties
Name Type Description members
Array.<String> 被移除的成员 id 列表 kickedBy
String 该移除操作的发起者 id - Inherited From:
-
MEMBERS_MUTED
-
有成员在当前对话中被禁言
Parameters:
Name Type Description payload
Object Properties
Name Type Description members
Array.<String> 成员 id 列表 mutedBy
String 该操作的发起者 id - Inherited From:
-
MEMBERS_UNBLOCKED
-
有成员被移出当前对话的黑名单
Parameters:
Name Type Description payload
Object Properties
Name Type Description members
Array.<String> 成员 id 列表 unblockedBy
String 该操作的发起者 id - Inherited From:
-
MEMBERS_UNMUTED
-
有成员在当前对话中被解除禁言
Parameters:
Name Type Description payload
Object Properties
Name Type Description members
Array.<String> 成员 id 列表 unmutedBy
String 该操作的发起者 id - Inherited From:
-
MESSAGE
-
当前对话收到消息
Parameters:
Name Type Description message
Message - Inherited From:
-
MESSAGE_RECALL
-
消息被撤回
Parameters:
Name Type Attributes Description message
AVMessage 被撤回的消息 reason
PatchReason <optional>
撤回的原因,不存在代表是发送者主动撤回 - Inherited From:
-
MESSAGE_UPDATE
-
消息被修改
Parameters:
Name Type Attributes Description message
AVMessage 被修改的消息 reason
PatchReason <optional>
修改的原因,不存在代表是发送者主动修改 - Inherited From:
-
MUTED
-
有成员在当前对话中被禁言
Parameters:
Name Type Description payload
Object Properties
Name Type Description mutedBy
String 该操作的发起者 id - Inherited From:
-
UNBLOCKED
-
当前用户被移出当前对话的黑名单
Parameters:
Name Type Description payload
Object Properties
Name Type Description unblockedBy
String 该操作的发起者 id - Inherited From:
-
UNMUTED
-
有成员在当前对话中被解除禁言
Parameters:
Name Type Description payload
Object Properties
Name Type Description unmutedBy
String 该操作的发起者 id - Inherited From: