function newSession(arg)
The method is designed to explicitly create a new session from a script.
Parameters
message— kick-off message, by which a new session is set. If it is not defined a system will execute only reactions of a root theme.
$reactions.newSession({message: $context.request.query, data: $context.request.data});session— data for a new session. Empty object by default.
{ timezone: "GMT+3" }client— client’s data. The current ones can be either reset or modified during a new session.
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— source request can be modified in a new session. For example, by changing/setting aneventorquery:{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— data for the new session, for example client request data$request.data. By default, it's an empty object.
$reactions.newSession({message: $context.request.query, data: $context.request.data});How to use
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});