有一些方法可以订阅Orion(例如Car实体),而无需接收旧实体?
实施例: 猎户座有 - >汽车A,汽车B。
我做onchange订阅,Orion同时发送给我: 汽车通知和汽车B通知。
我们需要以下内容:
猎户座有 - >汽车A,汽车B。
我做onchange订阅但此刻没有收到任何内容。如果将来Orion收到Car B,或更改Car A或Car B的某些属性,则发送通知。
这可能吗?
答案 0 :(得分:0)
行为在the user manual:
中说明如果您实际上没有进行任何更新,您可能想知道为什么accumulator-server.py会收到此消息。这是因为Orion Context Broker认为从“非现有订阅”到“订阅”的转换是一种变化。
我们理解,对于某些用例,这不方便。然而,在开始获得对应于实际变化的通知之前,以opossite方式行为破坏了需要知道“原始状态”的另一个用例。让每个人都满意的最佳解决方案是使其可配置,因此每个客户都可以选择它喜欢的内容。此功能目前已在我们的路线图中(请参阅this issue in github.com)。
虽然这是在Orion中实现的,但在您的情况下,可能的解决方法是忽略属于订阅的第一个收到的nofitication(您可以通过通知中的subscriptionId
字段来标识一个通知所属的订阅有效载荷)。所有以下与该订阅相关的通知都将与实际更改相对应。
编辑:最终在Orion实施了避免初始通知的可能性。详细信息位于this section of the documentation。它现在位于主分支中(因此,如果您使用fiware/orion:latest
docker,您将获得它)并将包含在下一个Orion版本(2.2.0)中。