FIWARE Orion:筛选订阅
我们使用Orion注册订阅。我们的应用程序中有两种订阅:FIWARE Orion:筛选订阅,fiware,fiware-orion,Fiware,Fiware Orion,我们使用Orion注册订阅。我们的应用程序中有两种订阅: 用户订阅:它们由用户使用我们的GUI创建 内部订阅:系统用于组件之间的通信 问题是要区分两者,以便只向用户提供面向用户的订阅。 我可以使用订阅的哪个字段?例如,最好有一个字段“type”。解决方案可以是利用与订阅相关联的描述字段来区分这两种类型。将来可能最好在订阅中打开额外字段的可能性(应用程序定义)并且能够对订阅进行查询(这是目前无法做到的)。我同意上面所说的,这将是一个非常好的功能 除了他的回复,同时我认为您可以在订阅中使用“元数
- 用户订阅:它们由用户使用我们的GUI创建
- 内部订阅:系统用于组件之间的通信
我可以使用订阅的哪个字段?例如,最好有一个字段“type”。解决方案可以是利用与订阅相关联的
描述字段来区分这两种类型。将来可能最好在订阅中打开额外字段的可能性(应用程序定义)并且能够对订阅进行查询(这是目前无法做到的)。我同意上面所说的,这将是一个非常好的功能
除了他的回复,同时我认为您可以在订阅中使用“元数据”字段来区分用户订阅和内部订阅。请记住,这个字段不应该用于此目的,它是一种实现您想要的行为的“黑暗”方式
下面是使用我的方法创建订阅的示例。在本例中,您使用元数据字段“isInternal”创建一个订阅,该字段仅告诉您这是一个内部订阅。然后,您可以使用另一个不同的元数据字段作为令牌,仅用于标识用户订阅:
curl -X POST \
http://localhost:1026/v2/subscriptions \
-H 'Content-Type: application/json' \
-d '{
"description": "A subscription to get info about Room1",
"subject": {
"entities": [
{
"id": "Room1",
"type": "Room"
}
],
"condition": {
"attrs": [
"temperature"
]
}
},
"notification": {
"http": {
"url": "http://localhost:1028/accumulate"
},
"attrs": ["temperature"],
"metadata": ["isInternal"]
}
}'
有关订阅中的元数据字段及其正常使用的更多信息,请参阅此。是,但描述是人类可读的字段。这就是为什么我建议添加一个字段“type”或类似的内容。notification
中的metadata
字段用于选择要包含在与订阅相关联的通知中的属性元数据。您建议的用法是:此答案不是该字段所针对的答案。。。尽管我不得不承认,对于这个用例来说,它可能是一种有效的“黑客攻击”