function newSession(arg)
Метод предназначен для явного создания новой сессии из скрипта.
Параметры
message— стартовое сообщение, будет передано сценарию сразу после активации сессии. Если параметр не задан, будут выполнены только реакции корневой темы.
$reactions.newSession({message: $context.request.query, data: $context.request.data});session— данные для новой сессии. По умолчанию — пустой объект.
{ timezone: "GMT+3" }client— данные клиента. Вы можете модифицировать в новой сессии текущие данные или сбросить их.
theme: /
init:
bind("postProcess", function($context) {
if ($context.session.startNewSession) {
$reactions.newSession({message: 'newSessionMessage', client: {}});
}
});
state:
q!: test
script:
$session.startNewSession = true;
$context.client.clientCustomData = 'testClientQuery';
a: Test answer
state:
q!: newSessionMessage
a: Message from new session request {{ $client.clientCustomData }}request— исходный запрос можно модифицировать в новой сессии. Например, изменитьeventилиquery:{event: 'new event'}.
theme: /
init:
bind("postProcess", function($context) {
if ($context.session.startNewSession) {
var $request = $context.request;
$request.event = 'newSessionEvent';
$reactions.newSession({request: $request});
}
});
state:
q!: test
script:
$session.startNewSession = true;
a: Test answer
state:
event: newSessionEvent
script:
a: Event from new session requestdata— данные для новой сессии, например, данные запроса клиента$request.data. По умолчанию — пустой объект.
$reactions.newSession({message: $context.request.query, data: $context.request.data});Примеры использования
script:
if (!$context.testContext && !$request.data.newSession) {
if ($parseTree) {
$reactions.newSession({message: $parseTree.text, data: {newSession:true}});
}
else {
$reactions.newSession({message: "/start", data: {newSession:true}});
}
}state: reset
q!: reset
script:
$reactions.newSession({message: "/start", data: $request.data});