我可以创建一个只通知那些已更改的上下文属性的订阅吗?

Can I create a subscription that notifies only those context attributes that has changed?

有没有办法在Orion Context Broker中创建一个订阅来通知上下文的任何变化,但只通知那些发生变化的属性?

目前,我发现这样做的唯一方法是创建多个订阅,每个订阅指向上下文的某个属性的变化并仅通知该属性(类似于所说的here).问题是这个解决方案在实践中不可维护,因为您需要创建与上下文中的属性一样多的订阅。

有什么帮助吗?

要包含在通知中的属性由 notification 中的 attrsexceptAttrs 字段控制(有关详细信息,请参阅 NGSIv2 specification)。因此,当前选项为 "all attributes"、"all attributes except a fixed list" 或 "a fixes list of attributes".

但是,请注意 Orion 存储库中的 this issue。我想正是你的意思。请随意添加对该问题的评论或表示您对此的支持。

编辑: 解决方法是使用 previousValue 元数据。因此,您可以订阅所有属性(使用 "attrs": [ ] 或省略该字段),包括通知中的 previousValue 元数据(使用 "metadata": [ "previousValue" ])。因此,您的通知接收器知道属性是否实际发生了变化,只需比较属性的值和 previousValue 元数据的值。