3

我正在使用 Cygnus 向 cosmos 发送数据。当实体订阅了上下文代理时,您必须在 JSON 消息中指定当实体的属性必须更新或发送到 Cygnus 时的事件或触发器。在 Cygnus 文档中出现以下链接:

https://forge.fi-ware.eu/plugins/mediawiki/wiki/fiware/index.php/Publish/Subscribe_Broker_-_Orion_Context_Broker_-_User_and_Programmers_Guide#ONCHANGE

它适用于 Orion Context Broker 的 0.13.0 版吗?

首先你必须创建实体然后创建通知?或者您可以在同一 JSON 消息中创建实体订阅和通知吗?

我可以在 JSON 中看到一个示例吗?

4

1 回答 1

2

通用订阅/通知机制在 Orion 0.13.0 中与 Cygnus 一起使用(通常,在任何版本中,可能非常古老的版本除外)。一般而言,该过程将假设您已正确配置并运行 Orion 和 Cygnus 实例:

首先,在 Orion 创建订阅,使用 Cygnus 正在侦听的主机/端口作为参考。订阅示例:

{
"entities": [
    {
        "type": "Room",
        "isPattern": "false",
        "id": "Room1"
    }
],
"attributes": [ ],
"reference": "cygnus_host:cygnus_port/cygnus_url",
"duration": "P1M",
"notifyConditions": [
    {
        "type": "ONCHANGE",
        "condValues": [
            "pressure",
            "temperature"
        ]
    }
]
}

其次,在 Orion 更新订阅中 condValues 处的任何实体属性。考虑到上面的例子,“压力”或“温度”的更新将通知案例。例如温度更新:

{
"contextElements": [
    {
        "type": "Room",
        "isPattern": "false",
        "id": "Room1",
        "attributes": [
        {
            "name": "temperature",
            "type": "centigrade",
            "value": "26.5"
        }
        ]
    }
]
}

最后,上述更新将导致向 Cygnus 发送通知,并按顺序保留在配置的接收器上,例如 Cosmos BigData、MySQL(来自 Cygnus 0.2.1)或 CKAN(来自 Cygnus 0.3)。

其他意见:

  • 通知可以包括实体的所有属性或它们的子集。此外,您可以使用实体模式订阅特定实体或组。有关详细信息,请查看Orion Context 代理通知文档
  • 上面的 cygnus_port 必须和cygnusagent.sources.http-source.portCygnus 配置中的参数值匹配
  • 上面的 cygnus_url 必须和cygnusagent.sources.http-source.handler.notification_targetCygnus中的参数值匹配
  • 如果您使用的是 Cygnus 0.2.1 或更早版本,则 的值cygnusagent.sources.http-source.handler.orion_version必须与您使用的 Orion 版本匹配(Cygnus 0.3 将不再使用此机制)。

请查看Cygnus 文档以获取更多详细信息。

注意:在引用元素之前包含 http://,由于 StackOverFlow 编辑限制,我无法自己添加)

于 2014-06-12T12:13:45.277 回答