Могу ли я создать подписку, которая уведомляет только те атрибуты контекста, которые изменились? - PullRequest
0 голосов
/ 03 июля 2018

Есть ли способ создать подписку в Orion Context Broker , чтобы уведомлять о любых изменениях в контексте, но уведомлять только те атрибуты, которые изменились?

На данный момент единственный способ сделать это - создать несколько подписок, каждая из которых указывает на изменение определенного атрибута контекста и уведомляет только этот атрибут (аналогично тому, что здесь сказано * 1006). *). Проблема заключается в том, что это решение не поддерживается на практике, поскольку вам необходимо создать столько подписок, сколько атрибутов в контексте.

Любая помощь?

1 Ответ

0 голосов
/ 03 июля 2018

Атрибуты, включаемые в уведомления, управляются полями attrs или exceptAttrs в notification (подробности см. В спецификации NGSIv2 ). Таким образом, текущими параметрами являются «все атрибуты», «все атрибуты, кроме фиксированного списка» или «список исправлений атрибутов».

Однако, обратите внимание на эту проблему в репозитории Orion. Я думаю, это именно то, что вы имеете в виду. Не стесняйтесь добавлять комментарии к этой проблеме или заявлять о своей поддержке.

РЕДАКТИРОВАТЬ: Обходной путь будет использовать previousValue метаданные. Таким образом, вы можете подписаться на все атрибуты (используя "attrs": [ ] или пропуская поле), включая previousValue метаданные в уведомлениях (используя "metadata": [ "previousValue" ]). Итак, ваш получатель уведомлений знает, действительно ли изменился атрибут, просто сравнивая значение атрибута и значение метаданных previousValue.

...