Параметры сессии
Сессия - это соединение, которое пользователь устанавливает с сервером при просмотре мэшапа в визуализации. Можно создать параметры сессии для сохранения временных данных из текущей сессии пользователя. Например, можно использовать параметр сессии, чтобы сохранить для мэшапа настройку предпочтительной темы стиля. Значения параметров сессии уникальны для каждого пользователя, соединившегося с сервером, и сохраняются до завершения сессии. Данные параметров сессии также сохраняются при переходе пользователя между различными мэшапами.
Сессия завершается, когда пользователь закрывает приложение, выходит из системы с помощью функции выхода или по тайм-ауту после простоя на сервере. Период тайм-аута по умолчанию для сессии платформы составляет 30 минут. Тайм-аут по умолчанию можно настроить с помощью сервиса администратора SetPlatformSessionTimeout. Дополнительные сведения см. в разделе Сервисы администратора.
Рекомендации
Используйте базу данных или вещь, чтобы хранить данные, необходимые для нескольких сессий.
Используйте параметры мэшапа для передачи данных между мэшапами, когда это возможно. Использование слишком большого числа параметров сессии может повлиять на производительность. Дополнительные сведения см. в разделе Конфигурирование параметров мэшапа.
Использование событий изменения для значений параметров сессии
Параметры сессии можно добавить в UserManagementSubsystem, а затем использовать панель Сессия в Mashup Builder, чтобы создать привязки к виджетам, сервисам или функциям в мэшапе. При выборе панели перечисляются доступные параметры сессии.
На панели Свойства данных отображается <Parameter_Name>Changed для каждого параметра. Эти события инициируются только при изменении значения параметра сессии на стороне клиента. Изменение значения параметра с помощью сервиса SetGlobalSessionValues на сервере не инициирует это событие. Чтобы инициировать событие при изменении значения на сервере, используйте вместо этого событие сервиса ServiceInvokeComplete, который используется для обновления параметра.
Добавление параметров сессии
Можно использовать сущность профиля вещи с одним или несколькими свойствами в качестве параметров сессии. Добавление структуры данных в сущность UserManagementSubsystem:
1. В Composer щелкните Обзор.
2. В разделе Система выберите Подсистемы, а затем откройте сущность UserManagementSubsystem.
3. Добавьте профиль вещи в подсистему одним из следующих способов.
На вкладке Сервисы выполните сервис AddSessionShape:
a. Найдите сервис и щелкните Выполнить сервис в столбце Выполнить. Откроется диалоговое окно Выполнить сервис.
b. В поле Наименование выберите профиль вещи, который содержит параметры сессии, а затем щелкните Выполнить.
c. Щелкните Готово, чтобы закрыть диалоговое окно.
d. Щелкните Сохранить, чтобы сохранить изменения в подсистеме.
На вкладке Конфигурация в разделе Настройки профилей вещей в сессии пользователя щелкните Добавить. Откроется диалоговое окно.
a. Введите наименование профиля вещи и щелкните Добавить.
b. Щелкните Сохранить, чтобы сохранить изменения в подсистеме.
Профиль вещи добавляется в подсистему. Свойства структуры данных перечисляются как привязываемые параметры сессии при открытии панели Сессия.
* 
Использование таблицы данных со многими строками и столбцами в качестве параметра сессии может привести к снижению производительности.
Дополнительные сведения см. в разделе Подсистема управления пользователями.
Доступ к параметрам сессии на сервере платформы
Загрузка значений параметров сессии:
1. В Composer щелкните Обзор.
2. В разделе Система выберите Ресурсы, а затем откройте сущность ресурса CurrentSessionInfo.
3. На вкладке Сервисы выполните сервис GetGlobalSessionValues:
a. Найдите сервис в списке, а затем в столбце Выполнить щелкните Выполнить сервис. Откроется диалоговое окно Выполнить сервис.
b. Щелкните Выполнить. Значения параметров для текущей сессии отображаются на панели Выходные данные.
c. Щелкните Готово, чтобы закрыть диалоговое окно.
Доступные параметры сессии перечисляются на панели Сессия. Панель Данные можно использовать для добавления сервиса GetGlobalSessionValues в мэшап и привязки его возвращаемых значений к функциям, сервисам или виджетам.
Пример. Использование параметра сессии для сохранения входных данных для виджета "Текстовое поле"
Значение свойства сессии теряется после обновления страницы, когда свойство виджета привязано непосредственно к параметру сессии. Чтобы сохранить значение при перезагрузке страницы, необходимо использовать задающий и принимающий сервисы для обновления и загрузки значения параметра.
1. Определите параметр сессии, выполнив шаги, описанные в разделе "Добавление параметров сессии".
2. Создайте вещь помощника, содержащую сервис, который задает значение параметра сессии.
3. Добавьте в задающий сервис входной параметр с именем input_string, а затем добавьте следующий код JavaScript:
Resources["CurrentSessionInfo"].SetGlobalSessionStringValue({name: "your_session_var", value: input_string});
4. Создайте мэшап, затем добавьте виджет "Текстовое поле", виджет "Кнопка" и функцию "Валидатор".
5. Используйте панель Данные, чтобы добавить следующие сервисы:
Задающий сервис, созданный на шаге 2.
Используйте сервис GetGlobalSessionValues из ресурса CurrentSessionInfo.
6. Привяжите свойство Text виджета "Текстовое поле" к параметру input_string задающего сервиса.
7. Привяжите переменную сессии в свойстве All Data сервиса GetGlobalSessionValues к свойству Text виджета "Текстовое поле".
8. Привяжите событие Clicked виджета "Кнопка" к задающему сервису.
9. Привяжите событие ServiceInvokeCompleted задающего сервиса к сервису Evaluate функции "Валидатор". Это гарантирует, что значение параметра сессии всегда будет обновляться перед выполнением функции.
10. Измените функцию и добавьте следующий код в выражение:
location.reload()
11. Сохраните, а затем просмотрите мэшап.
Введите значение в текстовое поле, а затем нажмите кнопку для перезагрузки страницы. Значение сохраняется после перезагрузки страницы.
Было ли это полезно?