我正在使用Cygnus向宇宙发送数据。当有上下文代理的实体订阅时,在JSON消息中,您必须在实体的属性必须更新或发送到Cygnus时指定事件或触发器。在Cygnus文档中出现以下链接:
它适用于Orion Context Broker的0.13.0版本?
首先,您必须创建实体,然后创建通知?或者您可以在同一JSON消息中创建实体订阅和通知吗?
我可以在JSON中看到一个示例吗?
答案 0 :(得分: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)。
补充意见:
cygnusagent.sources.http-source.port
的值匹配cygnusagent.sources.http-source.handler.notification_target
的值相匹配cygnusagent.sources.http-source.handler.orion_version
的值必须与您正在使用的Orion版本相匹配(Cygnus 0.3将不再使用此机制)。请详细了解to Cygnus documentation。
(注意:在参考元素之前包含http://,由于StackOverFlow编辑限制,我无法自行添加)