Управление событиями
Управление событиями — это процесс, который можно разделить на две части:
- добавление необходимых элементов в сессию с указанием нужных типов событий;
- получение и обработка событий.
Добавление элементов в сессию
Чтобы получать события от элементов, необходимо добавить эти элементы в сессию с помощью метода core/update_data_flags.
Добавить элементы в сессию можно тремя способами:
- по типу;
- по ID;
- по списку ID.
Пример 1
Добавим в сессию три объекта: Bavarian Tractor, Alabama и Touareg. Их ID известны, поэтому добавляем эти объекты, указав значение col для параметра type:
https://hst-api.wialon.com/wialon/ajax.html?
svc=core/update_data_flags&
params={
"spec": [
{
"type": "col",
"data": [34868, 22800, 553632],
"flags": 1,
"mode": 0
}
]
}&
sid=<your_sid>
Так как установлен только базовый флаг, мы сможем получать события только о переименовании этих объектов.
Так как значение параметра mode равно 0, все предыдущие флаги элемента будут заменены флагами из запроса.
Ответ:
[
{
"i": 34868,
"d": {
"nm": "Bavarian Tractor",
"cls": 2,
"id": 34868,
"mu": 0,
"uacl": 880333094911
},
"f": 1
},
{
"i": 22800,
"d": {
"nm": "Alabama",
"cls": 2,
"id": 22800,
"mu": 0,
"uacl": 880333094911
},
"f": 1
},
{
"i": 553632,
"d": {
"nm": "Touareg",
"cls": 2,
"id": 553632,
"mu": 0,
"uacl": 880333094911
},
"f": 1
}
]
Пример 2
Если вам больше не нужно получать события от объекта Touareg, его можно удалить из сессии. Так как удаление касается только одного объекта, укажите в запросе значение id для параметра type.
https://hst-api.wialon.com/wialon/ajax.html?
svc=core/update_data_flags&
params={
"spec": [
{
"type": "id",
"data": 553632,
"flags": 1,
"mode": 2 /* удаление флага */
}
]
}&
sid=<your_sid>
Чтобы полностью удалить объект из сессии, укажите значение 1 для параметра flags. Перестать получать все сообщения от объекта можно, только если явно запросить удаление базового флага.
Например, если вы изначально добавили объект с флагом 3 (сочетание флагов 1 и 2), а затем удалили только флаг 2, флаг 1 останется активным. В результате вы перестанете получать события, связанные с флагом 2, но продолжите получать события, связанные с флагом 1.
Ответ:
[
{
"i": 553632,
"d": null,
"f": 0
}
]
Значение 0 в поле f подтверждает, что объект успешно удален из сессии.