Session class
管理与用户的机器人对话。
构造函数
| Session(ISession |
创建会话的实例。 |
属性
| connector | 用于此会话的连接器。 |
| conversation |
对聊天的所有成员可见的共享聊天数据。 |
| dialog |
仅对当前对话框可见的数据。 |
| library | 机器人对话根库。 |
| localizer | 当前会话的本地化程序。 |
| message | 从用户接收的消息。 对于机器人发起的消息,这只能包含“to”&“from”字段。 |
| private |
仅对用户可见的专用聊天数据。 |
| session |
会话当前状态信息。 |
| user |
与机器人的所有对话中持久保存的用户的数据。 |
方法
构造函数详细信息
Session(ISessionOptions)
属性详细信息
connector
conversationData
对聊天的所有成员可见的共享聊天数据。
conversationData: any
属性值
any
dialogData
仅对当前对话框可见的数据。
dialogData: any
属性值
any
library
localizer
message
privateConversationData
仅对用户可见的专用聊天数据。
privateConversationData: any
属性值
any
sessionState
userData
与机器人的所有对话中持久保存的用户的数据。
userData: any
属性值
any
方法详细信息
activeDialogStackEntry(IDialogState[])
返回堆栈活动对话框或 null。
static function activeDialogStackEntry(stack: IDialogState[])
参数
- stack
要为其返回条目的对话框堆栈。
返回
beginDialog<T>(string, T)
将对话的控制传递给新对话。 当前对话将挂起,直到子对话完成。 子级结束后,当前对话将收到对 dialogResumed() 的调用, 可在其中检查从子级返回的任何结果。
function beginDialog<T>(id: string, args?: T)
参数
- id
-
string
要启动的对话的唯一 ID。
- args
-
T
(可选)参数,用于传递给对话 begin() 方法。
返回
cancelDialog(string | number, string, any)
取消现有对话框,并选择性地启动其位置的新对话。 与影响当前对话框的 endDialog() 和 replaceDialog() 不同,此方法允许在堆栈上的任意位置结束父对话。 取消对话框的父级将继续,就像对话已调用 endDialog() 一样。 将返回特殊 ResumeReason.canceled 以指示对话框已取消。
function cancelDialog(dialogId: string | number, replaceWithId?: string, replaceWithArgs?: any)
参数
- dialogId
-
string | number
- dialogId:{string} - 要结束的对话的 ID。 如果对话堆栈上存在对话的多个发生,将取消最后一次发生。
- dialogId:{number} - 要取消的堆栈上对话框的索引。 这是从操作处理程序取消对话的首选方法,因为它可确保取消正确的实例。
- replaceWithId
-
string
(可选)指定要在取消的对话框位置启动的 ID。 这可以防止对话父级恢复。
- replaceWithArgs
-
any
(可选)要传递给新对话框的参数。
返回
clearDialogStack()
delay(number)
dialogStack(IDialogState[])
获取/设置当前对话框堆栈。 返回当前对话框的副本,因此,如果对返回的堆栈进行任何更改,则需要通过第二次调用 session.dialogStack()将其复制回会话。
function dialogStack(newStack?: IDialogState[])
参数
- newStack
(可选)用于分配给会话的对话框堆栈。 dialogData 的会话将更新,以反映新活动对话的状态。
返回
dispatch(ISessionState, IMessage, Function)
完成会话对象的初始化,然后通过所有已安装的中间件路由会话。 传入的 next() 函数将作为中间件链的最后一步调用。
function dispatch(sessionState: ISessionState, message: IMessage, next: Function)
参数
- sessionState
- ISessionState
当前会话状态。 如果 null 新会话将从配置的 dialogId开始。
- message
- IMessage
要通过中间件路由的消息。
- next
-
Function
要作为中间件链的最后一步调用的函数。
返回
endConversation(TextOrMessageType, any[])
结束当前对话,并选择性地向用户发送消息。
function endConversation(message?: TextOrMessageType, args: any[])
参数
- message
- TextOrMessageType
(可选)在结束对话之前发送用户的文本/消息。
- args
-
any[]
(可选)参数,用于在 消息 为 {string|string[]}时设置最终输出文本的格式。
返回
endDialog(TextOrMessageType, any[])
结束当前对话框,并选择性地向用户发送消息。 父级将以 IDialogResult.resumed 完成 的原因恢复。
function endDialog(message?: TextOrMessageType, args: any[])
参数
- message
- TextOrMessageType
(可选)在结束对话之前发送用户的文本/消息。
- args
-
any[]
(可选)参数,用于在 消息 为 {string|string[]}时设置最终输出文本的格式。
返回
endDialogWithResult(IDialogResult<any>)
结束当前对话,并选择性地将结果返回给对话父级。
function endDialogWithResult(result?: IDialogResult<any>)
参数
- result
-
IDialogResult<any>
(可选)发送用户的结果。 要返回的值应位于 响应 字段中。
返回
error(Error)
findDialogStackEntry(IDialogState[], string, boolean)
在对话堆栈中搜索特定对话,以向前或反向方向返回其索引。
static function findDialogStackEntry(stack: IDialogState[], dialogId: string, reverse?: boolean)
参数
- stack
要搜索的对话框堆栈。
- dialogId
-
string
要搜索的对话框的唯一 ID,<namespace>:<dialog> 格式。
- reverse
-
boolean
(可选)如果从活动对话框开始搜索堆栈,并按其方式运行到根目录。
返回
number
forEachDialogStackEntry(IDialogState[], boolean, (entry: IDialogState, index: number) => void)
枚举正向或反向方向中的所有堆栈对话项。
static function forEachDialogStackEntry(stack: IDialogState[], reverse: boolean, fn: (entry: IDialogState, index: number) => void)
参数
- stack
要枚举的对话框堆栈。
- reverse
-
boolean
如果为 true,将从活动对话开始枚举条目,并处理根对话。
- fn
-
(entry: IDialogState, index: number) => void
用于调用堆栈上每个条目的函数。
gettext(string, any[])
加载消息语言的本地化字符串。 如果传递参数,本地化字符串将被视为模板,并使用 sprintf-js 进行格式化(请参阅其文档了解详细信息)。
function gettext(msgid: string, args: any[])
参数
- msgid
-
string
要用作本地化字符串表中键的字符串。 通常,这只是字符串的英文版本。
- args
-
any[]
(可选)用于设置最终输出字符串格式的参数。
返回
string
isReset()
如果会话已重置,则返回 true。
function isReset()
返回
boolean
messageSent()
如果已为此会话发送消息,则返回 true。
function messageSent()
返回
boolean
ngettext(string, string, number)
加载消息语言的本地化字符串的复数形式。 输出字符串的格式将设置为包含计数,方法是将字符串中的 %d 替换为计数。
function ngettext(msgid: string, msgid_plural: string, count: number)
参数
- msgid
-
string
要用作本地化字符串表中键的字符串的单一形式。 使用 %d 指定计数应到的位置。
- msgid_plural
-
string
要用作本地化字符串表中键的字符串的复数形式。 使用 %d 指定计数应到的位置。
- count
-
number
确定是否应使用字符串的单数形式或复数形式时要使用的计数。
返回
string
on(string, (data: any) => void)
注册事件侦听器。
function on(event: string, listener: (data: any) => void)
参数
- event
-
string
事件的名称。 事件类型:
-
错误: 发生错误。 传递 JavaScript
Error对象。
- listener
-
(data: any) => void
要调用的函数。
popDialogStackEntry(IDialogState[])
弹出堆栈中的活动对话框,如果堆栈不为空,则返回新对话。
static function popDialogStackEntry(stack: IDialogState[])
参数
- stack
要更新的对话框堆栈。
返回
preferredLocale(string, (err: Error) => void)
如果未提供任何参数,则返回首选区域设置,否则设置首选区域设置。
function preferredLocale(locale?: string, callback?: (err: Error) => void)
参数
- locale
-
string
(可选)用于本地化消息的区域设置。
- callback
-
(err: Error) => void
(可选)在为提供的区域设置加载本地化表时调用的函数。
返回
string
pruneDialogStack(IDialogState[], number)
删除以指定索引开头的所有对话堆栈条目,并返回新的活动对话。
static function pruneDialogStack(stack: IDialogState[], start: number)
参数
- stack
要更新的对话框堆栈。
- start
-
number
要删除的第一个元素的索引。
返回
pushDialogStackEntry(IDialogState[], IDialogState)
将新对话推送到堆栈上,并将其作为活动对话返回。
static function pushDialogStackEntry(stack: IDialogState[], entry: IDialogState)
参数
- stack
要更新的对话框堆栈。
- entry
- IDialogState
要推送到堆栈上的对话框条目。
返回
replaceDialog<T>(string, T)
结束当前对话框,并启动其位置的新对话。 在新对话完成之前,不会恢复父对话。
function replaceDialog<T>(id: string, args?: T)
参数
- id
-
string
要启动的对话的唯一 ID。
- args
-
T
(可选)参数,用于传递给对话 begin() 方法。
返回
reset(string, any)
清除会话调用堆栈,并使用配置的 dialogId 重启会话。
function reset(dialogId?: string, dialogArgs?: any)
参数
- dialogId
-
string
(可选)要启动的对话框的 ID。
- dialogArgs
-
any
(可选)参数,用于传递给对话 begin() 方法。
返回
routeToActiveDialog(IRecognizeResult)
将会话调度到活动对话或默认对话进行处理。
function routeToActiveDialog(recognizeResult?: IRecognizeResult)
参数
- recognizeResult
- IRecognizeResult
(可选)从调用 Library.findRoutes()、Library.findActiveDialogRoutes()、* 或 Dialog.recognize()返回的结果。
save()
触发对 dialogData、userData、conversationdata或 [privateConversationData'(#privateconversationdata)所做的更改的保存。
function save()
返回
say(TextType, IMessageOptions)
say(TextType, TextType, IMessageOptions)
向用户发送文本和可选 SSML 消息。
function say(text: TextType, speak?: TextType, options?: IMessageOptions)
参数
- text
- TextType
要发送给用户的文本。 这可以为 null 以仅发送 SSML 或附件。
- speak
- TextType
(可选)应向用户朗读的消息。 消息的格式应为 语音合成标记语言(SSML)。 如果传递数组,则会随机选择响应。
- options
- IMessageOptions
(可选)应在传出消息中包含的属性。
返回
sayLocalized(string, TextType, TextType, IMessageOptions)
使用特定本地化命名空间向用户发送文本和可选 SSML 消息。
function sayLocalized(libraryNamespace: string, text: TextType, speak?: TextType, options?: IMessageOptions)
参数
- libraryNamespace
-
string
Namespace用于本地化消息。
- text
- TextType
要发送给用户的文本。 这可以为 null 以仅发送 SSML 或附件。
- speak
- TextType
(可选)应向用户朗读的消息。 消息的格式应为 语音合成标记语言(SSML)。 如果传递数组,则会随机选择响应。
- options
- IMessageOptions
(可选)应在传出消息中包含的属性。
返回
send(TextOrMessageType, any[])
向用户发送消息。
function send(message: TextOrMessageType, args: any[])
参数
- message
- TextOrMessageType
要发送给用户的文本/消息。 如果传递数组,则会随机选择响应。
- args
-
any[]
(可选)参数,用于在 消息 为 {string|string[]}时设置最终输出文本的格式。
返回
sendBatch((err: Error, addresses?: IAddress[]) => void)
立即结束当前批处理并传递任何排队的消息。
function sendBatch(done?: (err: Error, addresses?: IAddress[]) => void)
参数
- done
-
(err: Error, addresses?: IAddress[]) => void
(可选)在批处理成功或失败时调用的函数,原因有一些。
sendLocalized(string, TextOrMessageType, any[])
使用特定本地化命名空间向用户发送消息。
function sendLocalized(libraryNamespace: string, message: TextOrMessageType, args: any[])
参数
- libraryNamespace
-
string
Namespace用于本地化消息。
- message
- TextOrMessageType
要发送给用户的文本/消息。
- args
-
any[]
(可选)参数,用于在 消息 为 {string|string[]}时设置最终输出文本的格式。
返回
sendTyping()
toRecognizeContext()
validateDialogStack(IDialogState[], Library)
确保对话堆栈上的所有条目都引用库层次结构中的有效对话。
static function validateDialogStack(stack: IDialogState[], root: Library)
参数
- stack
要验证的对话框堆栈。
- root
- Library
库层次结构的根目录,通常是机器人。
返回
boolean
watch(string, boolean)
启用/禁用当前会话的监视。
function watch(variable: string, enable?: boolean)
参数
- variable
-
string
要监视/取消监视的变量的名称。
- enable
-
boolean
(可选)如果为 true,则监视变量,否则将不受监视。 默认值为 true。
返回
watchable(string, IWatchableHandler)
添加或检索可监视的变量。
static function watchable(variable: string, handler?: IWatchableHandler)
参数
- variable
-
string
可监视的变量的名称。 事例仅用于显示。
- handler
- IWatchableHandler
(可选)用于检索变量当前值的函数。 如果指定新的处理程序将被注册,则检索现有处理程序。
返回
watchableList()
返回可监视变量的列表。
static function watchableList()
返回
string[]
watchList()
返回会话的监视变量的当前列表。
function watchList()
返回
string[]