MessagingService

MessagingService

消息服务模块接口。

Constructor

new MessagingService()

构造函数。

Extends

Classes

MessagingService

Members

contactEventFun :function

联系模块的事件监听函数。

Type:
  • function

contactService :ContactService

联系人服务。

Type:

conversations :Array.<Conversation>

会话列表。

Type:

(protected) defaultRetrospect :number

Overrides:

默认回溯时长,默认值:30个自然天。

Type:
  • number

(protected) dependencies :Array.<string>

Overrides:

模块的外部依赖。

Type:
  • Array.<string>

(protected) deps :Array.<string>

Overrides:

依赖库列表。

Type:
  • Array.<string>

fileStorageEventFun :function

文件存储模块的事件监听函数。

Type:
  • function

(protected) kernel :Kernel

Overrides:

内核对象。

Type:

lastMessageTime :number

最近一条消息的时间。

Type:
  • number

lastQueryTime :number

最近一次查询操作的执行时间。用于控制高频查询。

Type:
  • number

(protected) name :string

Overrides:

模块名称。

Type:
  • string

notifiedQueue :Array.<Message>

消息通知达到队列。

Type:

(protected) pipeline :Pipeline

Overrides:

模块使用的默认数据管道。

Type:

pipelineListener :MessagingPipelineListener

用于监听数据通道数据的监听器。

Type:

(protected) pluginSystem :PluginSystem

Overrides:

消息插件系统。

Type:

pushQueue :Array.<Message>

发送队列。

Type:

sendingMap :OrderMap.<number, Message>

正在发送队列。

Type:

(protected) started :boolean

Overrides:

是否已启动。

Type:
  • boolean

storage :MessagingStorage

消息存储器。

Type:

Methods

applyConversation(idOrEntity, handleSuccess, handleFailure)

申请指定的会话。

Parameters:
Name Type Description
idOrEntity number | Contact | Group

指定实体 ID 或者联系人及群组。

handleSuccess function

操作成功回调句柄,参数:(conversation:Conversation) 。

handleFailure function

操作失败回调句柄,参数:(error:ModuleError) 。

assemble()

组装插件系统。

changeConversationName(conversation, newName, handleSuccess, handleFailure)

修改会话名称。该方法仅对基于群组的会话有效。

Parameters:
Name Type Description
conversation Conversation

指定会话实例。

newName string

指定新会话名称。

handleSuccess function

操作成功回调句柄,参数:(conversation:Conversation) 。

handleFailure function

操作失败回调句柄,参数:(error:ModuleError) 。

config(config)

Overrides:

配置模块。

Parameters:
Name Type Description
config JSON

配置信息。

deleteConversation(idOrConversation, handleSuccess, handleFailure)

删除指定会话。

Parameters:
Name Type Description
idOrConversation number | Conversation

指定会话 ID 或者会话实例。

handleSuccess function

操作成功回调句柄,参数:(conversation:Conversation) 。

handleFailure function

操作失败回调句柄,参数:(error:ModuleError) 。

deleteDraft(target) → {boolean}

删除草稿。

Parameters:
Name Type Description
target Contact | Group | number

草稿的目标实体。

Returns:

删除成功返回 true

Type
boolean

deleteMessage(message, handleSuccessopt, handleFailureopt) → {boolean}

删除消息。

Parameters:
Name Type Attributes Description
message Message | number

指定消息实例或者消息 ID 。

handleSuccess function <optional>

操作成功回调该方法,参数:(message:Message) 。

handleFailure function <optional>

操作错误回调该方法,参数:(message:Message) 。

Returns:

返回是否能执行该操作。

Type
boolean

deleteRecentMessager(messager, handleSuccessopt, handleFailureopt)

删除指定的最近消息列表里的联系人或群组。

Parameters:
Name Type Attributes Description
messager Group | Contact | number

指定需要移除的联系人或者群组。

handleSuccess function <optional>

操作成功回调该方法,参数:(messagerId:number) 。

handleFailure function <optional>

操作错误回调该方法,参数:(error:ModuleError) 。

deregister(plugin)

注销插件。

Parameters:
Name Type Description
plugin MessagePlugin

destroyConversation(conversation, handleSuccess, handleFailure)

销毁指定会话。

Parameters:
Name Type Description
conversation Conversation

指定会话实例。

handleSuccess function

操作成功回调句柄,参数:(conversation:Conversation) 。

handleFailure function

操作失败回调句柄,参数:(error:ModuleError) 。

fillConversation(conversation) → {Promise}

填充会话数据。

Parameters:
Name Type Description
conversation Conversation
Returns:
Type
Promise

getAuthToken() → {AuthToken}

Overrides:

获取访问令牌。

Returns:

返回当前存储的访问令牌,如果没有获得令牌返回 null 值。

Type
AuthToken

getConversation(conversationId, handleSuccess, handleFailureopt)

获取指定会话。

Parameters:
Name Type Attributes Description
conversationId number

指定会话 ID 。

handleSuccess function

操作成功的回调方法。参数:(conversation:Conversation) 。

handleFailure function <optional>

操作失败的回调方法。参数:(error:ModuleError) 。

getName() → {string}

Overrides:

获取模块名称。

Returns:

返回模块名称。

Type
string

getPluginSystem() → {PluginSystem}

Overrides:

获取插件系统对象实例。

Returns:

返回插件系统对象实例。

Type
PluginSystem

getRecentConversations(handler)

获取最近的会话清单。

Parameters:
Name Type Description
handler function

指定会话清单回调句柄,参数:(list:Array<Conversation>) 。

hasStarted() → {boolean}

Overrides:

是否已启动过该模块。

Returns:

如果已启动返回 true ,否则返回 false

Type
boolean

isReady() → {boolean}

Overrides:

模块是否就绪。

Returns:

如果模块就绪返回 true

Type
boolean

isSender(message) → {boolean}

消息是否是当前签入的联系人账号发出的。 即当前账号是否是指定消息的发件人。

Parameters:
Name Type Description
message Message

指定消息实例。

Returns:

如果是当前签入人发出的返回 true

Type
boolean

loadDraft(target, handleSuccess, handleFailureopt) → {boolean}

加载草稿。

Parameters:
Name Type Attributes Description
target Contact | Group | number

草稿的目标实体。

handleSuccess function

成功回调。参数:(draft:MessageDraft) 。

handleFailure function <optional>

失败回调。参数:(error:ModuleError) 。

Returns:

是否可加载。

Type
boolean

markLocalOnlyOwner(message)

标记指定的消息为本地的自作用域消息。 该方法会触发 MessagingEvent.MarkOnlyOwner 事件。

Parameters:
Name Type Description
message Message

指定消息。

markRead(message, handleSuccessopt, handleFailureopt) → {boolean}

标记消息已读。

Parameters:
Name Type Attributes Description
message Message | number

指定消息实例或者消息 ID 。

handleSuccess function <optional>

操作成功回调该方法,参数:(message:Message) 。

handleFailure function <optional>

操作失败回调该方法,参数:(error:ModuleError) 。

Returns:

返回是否能执行该操作。

Type
boolean

on(eventopt, listener)

Overrides:
See:

设置指定事件的监听回调函数。

Parameters:
Name Type Attributes Description
event string <optional>

指定事件名。

listener function

当发生该事件时回调此函数,函数参数参看 ModuleEvent

queryLastMessageWithContact(contactOrId, handler)

查询指定联系人的最后一条消息。

Parameters:
Name Type Description
contactOrId Contact | number

指定联系人或联系人 ID 。

handler function

回调函数,参数:(message:Message) 。

queryLastMessageWithGroup(groupOrId, handler)

查询指定联系人的最后一条消息。

Parameters:
Name Type Description
groupOrId Group | number

指定群组或群组 ID 。

handler function

回调函数,参数:(message:Message) 。

queryMessageById(messageId, handler)

通过消息 ID 查询指定消息。

Parameters:
Name Type Description
messageId number
handler function

回调函数,函数参数:(message:Message) 。

queryMessages(time, handler) → {boolean}

查询指定时间开始到当前时间的所有消息。

Parameters:
Name Type Description
time number

指定查询的起始时间。

handler function

查询结果回调函数,函数参数:(time:number, result:Array<Message>) 。

Returns:

如果成功执行查询返回 true

Type
boolean

queryMessagesWithContact(contactOrId, beginning, handler) → {boolean}

查询指定联系人 ID 相关的所有消息,即包括该联系人发送的消息,也包含该联系人接收的消息。从起始时间向后查询所有消息。

Parameters:
Name Type Description
contactOrId Contact | number

指定联系人或联系人 ID 。

beginning number

指定查询的起始时间。

handler function

查询结果回调函数,函数参数:(contactId:number, beginning:number, result:Array<Message>) 。

Returns:

如果成功执行查询返回 true

Type
boolean

queryMessagesWithGroup(groupOrId, beginning, handler) → {boolean}

查询指定群组 ID 相关的所有消息。从起始时间向后查询所有消息。

Parameters:
Name Type Description
groupOrId Group | number

指定群组或者群组 ID 。

beginning number

指定查询的起始时间。

handler function

查询结果回调函数,函数参数:(groupId:number, beginning:number, result:Array<Message>) 。

Returns:

如果成功执行查询返回 true

Type
boolean

queryRecentMessagers(handler, beginningopt)

查询最近的消息记录对应的联系人或群组。

Parameters:
Name Type Attributes Description
handler function

数据接收回调。参数:(beginning:number, list:Array<Contact|Group>})。

beginning number <optional>

指定查询的开始时间戳。

queryRecentMessagesWithContact(contactOrId, limit, handler)

查询最近的指定的联系人消息。返回的消息列表为时间戳正序。

Parameters:
Name Type Description
contactOrId Contact | number

联系人或联系人 ID 。

limit number

查询的最大消息数量限制。

handler function

查询结果回调。参数:(contactId:number, list:Array.<Message>) 。

queryRecentMessagesWithGroup(groupOrId, limit, handler)

查询最近的指定的群组消息。返回的消息列表为时间戳正序。

Parameters:
Name Type Description
groupOrId Group | number

群组或群组 ID 。

limit number

查询的最大消息数量限制。

handler function

查询结果回调。参数:(groupId:number, list:Array.<Message>) 。

queryRemoteConversations(limit, handleSuccess, handleFailure)

查询远端服务器上的会话数据。

Parameters:
Name Type Description
limit number
handleSuccess function
handleFailure function

queryRemoteMessage(beginningopt, endingopt, handleropt) → {boolean}

从服务器上下载指定时间段内的数据,数据将直接写入本地存储。

Parameters:
Name Type Attributes Description
beginning number <optional>

指定获取消息的起始时间。

ending number <optional>

指定获取消息的截止时间。

handler function <optional>

指定本次查询回调,该回调函数仅用于通知该次查询结束,不携带任何消息数据。

Returns:

如果成功执行查询操作返回 true

Type
boolean

recallMessage(message, handleSuccessopt, handleFailureopt) → {boolean}

撤回消息。

Parameters:
Name Type Attributes Description
message Message | number

指定消息 ID 或者消息实例。

handleSuccess function <optional>

操作成功回调该方法,参数:(message:Message) 。

handleFailure function <optional>

操作错误回调该方法,参数:(error:ModuleError) 。

Returns:

返回是否能执行该操作。

Type
boolean

register(plugin)

注册插件。

Parameters:
Name Type Description
plugin MessagePlugin

require(moduleName)

Overrides:

声明该模块依赖的其他模块。

Parameters:
Name Type Description
moduleName string

requireFile(fileOrURL, successCallbackopt, failureCallbackopt)

Overrides:

请求外部依赖库文件。

Parameters:
Name Type Attributes Description
fileOrURL string

文件或者文件的 URL 。

successCallback function <optional>
failureCallback function <optional>

resume()

Overrides:

恢复模块。

reverseIterateMessageWithContact(contactOrId, timestamp, handleTouch, handleDone)

按照时间戳反向遍历指定联系人的消息。 遍历数据时当 handleTouch 返回 true 时表示继续遍历下一条消息,返回 false 表示停止遍历。

Parameters:
Name Type Description
contactOrId number | Contact

联系人或联系人 ID 。

timestamp number

起始时间戳。

handleTouch function

当遍历到数据时回调该函数。参数:(id:number, message:Message) 。

handleDone function

当遍历结束时回调该函数。

reverseIterateMessageWithGroup(contactOrId, timestamp, handleTouch, handleDone)

按照时间戳反向遍历指定群组的消息。 遍历数据时当 handleTouch 返回 true 时表示继续遍历下一条消息,返回 false 表示停止遍历。

Parameters:
Name Type Description
contactOrId number | Contact

群组或群组 ID 。

timestamp number

起始时间戳。

handleTouch function

当遍历到数据时回调该函数。参数:(id:number, message:Message) 。

handleDone function

当遍历结束时回调该函数。

saveDraft(target, message) → {boolean}

保存草稿。

Parameters:
Name Type Description
target Contact | Group | number

草稿的目标实体。

message Message

草稿的消息实体。

Returns:

保存成功返回 true

Type
boolean

sendTo(destination, message, fileopt) → {Message}

向指定的联系人或者群组发送消息。

Parameters:
Name Type Attributes Description
destination Contact | Group

指定联系人或者群组。

message JSON | Message

指定消息实例或消息负载。

file File <optional>

指定消息附件。

Returns:

如果消息成功写入数据通道返回 Message 实例,否则返回 null 值。

Type
Message

sendToContact(contact, message, fileopt) → {Message}

向指定联系人发送消息。

Parameters:
Name Type Attributes Description
contact Contact | number

指定联系人或联系人 ID 。

message JSON | Message

指定消息实例或消息内容。

file File <optional>

指定消息附件。

Returns:

如果消息成功写入数据通道返回 Message 实例,否则返回 null 值。

Type
Message

sendToGroup(group, message, fileopt) → {Message}

向指定群组发送消息。

Parameters:
Name Type Attributes Description
group Group | number

指定群组或群组 ID 。

message JSON | Message

指定消息实例或消息内容。

file File <optional>

指定消息附件。

Returns:

如果消息成功写入数据通道返回 Message 实例,否则返回 null 值。

Type
Message

start() → {boolean}

Overrides:

启动模块。

Returns:

返回 false 表示模块不再需要执行启动流程。

Type
boolean

stop()

Overrides:

停止模块。

suspend()

Overrides:

挂起模块。

updateConversation(conversation, handleSuccess, handleFailure)

更新会话数据。

Parameters:
Name Type Description
conversation Conversation

指定会话实例。

handleSuccess function

操作成功回调句柄,参数:(conversation:Conversation) 。

handleFailure function

操作失败回调句柄,参数:(error:ModuleError) 。