IMClient

new IMClient()

无法直接实例化,请使用 Realtime#createIMClient 创建新的 IMClient。

Extends

Members

id :String

客户端 id

Methods

close() → {Promise} [async]

关闭客户端
Returns:
Promise

createChatRoom(options) → {Promise.<ChatRoom>} [async]

创建一个聊天室
Parameters:
Name Type Description
options Object 除了下列字段外的其他字段将被视为对话的自定义属性
Properties
Name Type Attributes Description
name String <optional>
对话的名字
Returns:
Promise.<ChatRoom>
Since:
  • 4.0.0

createConversation(options) → {Promise.<Conversation>} [async]

创建一个对话
Parameters:
Name Type Description
options Object 除了下列字段外的其他字段将被视为对话的自定义属性
Properties
Name Type Attributes Default Description
members Array.<String> 对话的初始成员列表,默认包含当前 client
name String <optional>
对话的名字
unique Boolean <optional>
true 唯一对话,当其为 true 时,如果当前已经有相同成员的对话存在则返回该对话,否则会创建新的对话
Returns:
Promise.<Conversation>

createTemporaryConversation(options) → {Promise.<TemporaryConversation>} [async]

创建一个临时对话
Parameters:
Name Type Description
options Object
Properties
Name Type Attributes Description
members Array.<String> 对话的初始成员列表,默认包含当前 client
ttl String <optional>
对话存在时间,单位为秒,最大值与默认值均为 86400(一天),过期后该对话不再可用。
Returns:
Promise.<TemporaryConversation>
Since:
  • 4.0.0

emit(event) → {Boolean}

依次调用 event 事件的监听器列表中的 listener。
Parameters:
Name Type Attributes Description
event String | Symbol The event name.
...arg Mixed <optional>
payloads
Returns:
Boolean - `true` if the event had listeners, else `false`.
Inherited From:

getChatRoomQuery() → {ConversationQuery.<ChatRoom>}

构造一个 ConversationQuery 来查询聊天室

getConversation(id, noCacheopt) → {Promise.<ConversationBase>} [async]

获取某个特定的对话
Parameters:
Name Type Attributes Default Description
id String 对话 id,对应 _Conversation 表中的 objectId
noCache Boolean <optional>
false 强制不从缓存中获取
Returns:
Promise.<ConversationBase> - 如果 id 对应的对话不存在则返回 null

getConversations(ids, noCacheopt) → {Promise.<Array.<ConversationBase>>} [async]

通过 id 批量获取某个特定的对话
Parameters:
Name Type Attributes Default Description
ids Array.<String> 对话 id 列表,对应 _Conversation 表中的 objectId
noCache Boolean <optional>
false 强制不从缓存中获取
Returns:
Promise.<Array.<ConversationBase>> - 如果 id 对应的对话不存在则返回 null
Since:
  • 3.4.0

getQuery() → {ConversationQuery.<PersistentConversation>}

构造一个 ConversationQuery 来查询对话

getServiceConversationQuery() → {ConversationQuery.<ServiceConversation>}

构造一个 ConversationQuery 来查询服务号

off(event, listeneropt, contextopt, onceopt) → {this}

移除 event 事件的监听器列表中的 listener。
Parameters:
Name Type Attributes Description
event String | Symbol The event name.
listener function <optional>
Only remove the listeners that match this function.
context Mixed <optional>
Only remove the listeners that have this context.
once Boolean <optional>
Only remove one-time listeners.
Returns:
this - self.
Inherited From:

on(event, listener, contextopt) → {this}

给指定的 event 添加监听器,并将该监听器置于监听器列表的末位。该方法不会检查是否已经添加过该监听器。重复添加相同的 event 和 listener 会导致该事件和监听器被重复触发。
Parameters:
Name Type Attributes Default Description
event String | Symbol The event name.
listener function The listener function.
context Mixed <optional>
this The context to invoke the listener with.
Returns:
this - self.
Inherited From:

once(event, listener, contextopt) → {this}

为 event 事件添加一个一次性的监听器,该事件第一次触发之后就会被注销。
Parameters:
Name Type Attributes Default Description
event String | Symbol The event name.
listener function The listener function.
context Mixed <optional>
this The context to invoke the listener with.
Returns:
this - self.
Inherited From:

parseConversation() → {ConversationBase} [async]

反序列化对话,与 Conversation#toFullJSON 相对。
Parameters:
Type Description
Object
Returns:
ConversationBase - 解析后的对话
Since:
  • 4.0.0

parseMessage() → {AVMessage} [async]

反序列化消息,与 Message#toFullJSON 相对。
Parameters:
Type Description
Object
Returns:
AVMessage - 解析后的消息
Since:
  • 4.0.0

ping(clientIds) → {Primse.<Array.<String>>} [async]

获取 client 列表中在线的 client,每次查询最多 20 个 clientId,超出部分会被忽略
Parameters:
Name Type Description
clientIds Array.<String> 要查询的 client ids
Returns:
Primse.<Array.<String>> - 在线的 client ids

Events

BLOCKED

当前用户被加入某个对话的黑名单
Parameters:
Name Type Description
payload Object
Properties
Name Type Description
blockedBy String 该操作的发起者 id
conversation ConversationBase

CLOSE

当前客户端被服务端强行下线
Parameters:
Name Type Description
payload Object
Properties
Name Type Description
code Number 错误码
reason String 原因

CONFLICT

用户在其他客户端登录,当前客户端被服务端强行下线。详见文档「单点登录」章节。
Parameters:
Name Type Description
payload Object
Properties
Name Type Description
reason string 原因

CONVERSATION_INFO_UPDATED

该对话信息被更新
Parameters:
Name Type Description
payload Object
Properties
Name Type Description
attributes Object 被更新的属性
updatedBy String 该操作的发起者 id
conversation ConversationBase

DISCONNECT

客户端连接断开
Since:
  • 3.2.0
See:

INVITED

当前用户被添加至某个对话
Parameters:
Name Type Description
payload Object
Properties
Name Type Description
invitedBy String 邀请者 id
conversation ConversationBase

KICKED

当前用户被从某个对话中移除
Parameters:
Name Type Description
payload Object
Properties
Name Type Description
kickedBy String 该移除操作的发起者 id
conversation ConversationBase

MEMBER_INFO_UPDATED

有成员的对话信息被更新
Parameters:
Name Type Description
payload Object
Properties
Name Type Description
member String 被更新对话信息的成员 id
memberInfo ConversationMumberInfo 被更新的成员对话信息
updatedBy String 该操作的发起者 id
conversation ConversationBase

MEMBERS_BLOCKED

有成员被加入某个对话的黑名单
Parameters:
Name Type Description
payload Object
Properties
Name Type Description
members Array.<String> 成员 id 列表
blockedBy String 该操作的发起者 id
conversation ConversationBase

MEMBERS_JOINED

有用户被添加至某个对话
Parameters:
Name Type Description
payload Object
Properties
Name Type Description
members Array.<String> 被添加的用户 id 列表
invitedBy String 邀请者 id
conversation ConversationBase

MEMBERS_LEFT

有成员被从某个对话中移除
Parameters:
Name Type Description
payload Object
Properties
Name Type Description
members Array.<String> 被移除的成员 id 列表
kickedBy String 该移除操作的发起者 id
conversation ConversationBase

MEMBERS_MUTED

有成员在某个对话中被禁言
Parameters:
Name Type Description
payload Object
Properties
Name Type Description
members Array.<String> 成员 id 列表
mutedBy String 该操作的发起者 id
conversation ConversationBase

MEMBERS_UNBLOCKED

有成员被移出某个对话的黑名单
Parameters:
Name Type Description
payload Object
Properties
Name Type Description
members Array.<String> 成员 id 列表
unblockedBy String 该操作的发起者 id
conversation ConversationBase

MEMBERS_UNMUTED

有成员在某个对话中被解除禁言
Parameters:
Name Type Description
payload Object
Properties
Name Type Description
members Array.<String> 成员 id 列表
unmutedBy String 该操作的发起者 id
conversation ConversationBase

MESSAGE

当前用户收到消息
Parameters:
Name Type Description
message Message
conversation ConversationBase 收到消息的对话

MESSAGE_RECALL

消息被撤回
Parameters:
Name Type Attributes Description
message AVMessage 被撤回的消息
conversation ConversationBase 消息所在的会话
reason PatchReason <optional>
撤回的原因,不存在代表是发送者主动撤回

MESSAGE_UPDATE

消息被修改
Parameters:
Name Type Attributes Description
message AVMessage 被修改的消息
conversation ConversationBase 消息所在的会话
reason PatchReason <optional>
修改的原因,不存在代表是发送者主动修改

MUTED

有成员在某个对话中被禁言
Parameters:
Name Type Description
payload Object
Properties
Name Type Description
mutedBy String 该操作的发起者 id
conversation ConversationBase

OFFLINE

进入离线状态。 这通常意味着网络已断开,或者 Realtime#pause 被调用
Since:
  • 3.4.0

ONLINE

恢复在线状态 这通常意味着网络已恢复,或者 Realtime#resume 被调用
Since:
  • 3.4.0

RECONNECT

客户端连接恢复正常,该事件通常在 Realtime#event:RECONNECT 之后发生
Since:
  • 3.2.0
See:

RECONNECT_ERROR

客户端重新登录发生错误(网络连接已恢复,但重新登录错误)
Since:
  • 3.2.0

RETRY

正在尝试重新连接
Parameters:
Name Type Description
attempt Number 尝试重连的次数
Since:
  • 3.2.0

SCHEDULE

计划在一段时间后尝试重新连接
Parameters:
Name Type Description
attempt Number 尝试重连的次数
delay Number 延迟的毫秒数
Since:
  • 3.2.0

UNBLOCKED

当前用户被移出某个对话的黑名单
Parameters:
Name Type Description
payload Object
Properties
Name Type Description
unblockedBy String 该操作的发起者 id
conversation ConversationBase

UNMUTED

有成员在某个对话中被解除禁言
Parameters:
Name Type Description
payload Object
Properties
Name Type Description
unmutedBy String 该操作的发起者 id
conversation ConversationBase

UNREAD_MESSAGES_COUNT_UPDATE

未读消息数目更新
Parameters:
Name Type Description
conversations Array.<Conversation> 未读消息数目有更新的对话列表
Since:
  • 3.4.0