$sharedContext
Объект, который хранит данные сессии неаутентифицированного пользователя и обеспечивает доступ к ним после аутентификации.
Идентификация пользователя до авторизации выполняется на основе данных об устройстве, на котором запущен смартап. Таким образом данные из переменной $sharedContext
сохраняются только в рамках устройства.
Переменная недоступна в тестовом виджете. Для тестирования Chat App используйте эмулятор.
Структура объекта
Лимиты
Размер объекта $sharedContext
ограничен мягким и жестким лимитам в 100 Кб и 1000 Кб соотвественно.
При достижении мягкого лимита в сценарий передается событие sharedDataSoftLimitExceeded
:
event: sharedDataSoftLimitExceeded
При этом данные контекста продолжат сохраняться до достижения жесткого лимита. При достижении жесткого лимита в сценарий передается событие sharedDataHardLimitExceeded
:
event: sharedDataHardLimitExceeded
При этом данные перестают сохраняться в объекте $sharedContext
.
Пример
theme: /
state:
q: * *start
go!: /start
state: start
q!: *
script:
$sharedContext.sharedData = $parseTree.text // сохраняем данные сессии
a: Вы сказали: {{$sharedContext.text}}.
state:
event: sharedDataSoftLimitExceeded // обрабатываем событие о достижении мягкого лимита
script:
delete $sharedContext.sharedData; // при достижении мягкого лимита данные активного смартапа удаляются