You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FIWARE Orion多服务订阅问题:单请求配置多通知URL

解决Orion多服务订阅通知的问题

我明白你现在的需求:一次性订阅所有Nodo_aire类型实体的全属性,同时把通知发送给Cygnus、STH-comet等多个服务。其实Orion的订阅API完全支持这种场景,只需要把notification里的http字段从单个对象改成数组,就能配置多个通知URL啦!

完整的请求体示例

{
  "subject": {
    "entities": [
      {
        "type": "Nodo_aire",
        "idPattern": ".*"
      }
    ],
    "condition": {
      "attrs": []
    }
  },
  "notification": {
    "http": [
      {
        "url": "http://192.168.1.51:5050/notify"  // Cygnus的通知地址
      },
      {
        "url": "http://你的STH-comet地址:端口/notify"  // STH-comet的通知地址
      },
      {
        "url": "http://其他服务地址:端口/notify"  // 其他需要通知的服务
      }
    ],
    "attrs": [],
    "metadata": ["dateCreated", "dateModified"],  // 可选:如果需要接收实体元数据的话
    "onlyChangedAttrs": false  // 可选:设为false确保每次属性更新都发送全量通知
  },
  "expires": "2099-12-31T23:59:59.00Z"  // 可选:设置订阅过期时间,永久订阅可以设很远的时间
}

关键部分说明

  • subject部分:你原来的配置已经没问题,idPattern: ".*"会匹配所有Nodo_aire类型的实体,condition.attrs: []表示订阅该实体的所有属性,不用逐个指定。
  • notification.http数组:这是实现多服务通知的核心,每个数组元素对应一个服务的通知URL,Orion会在实体属性更新时,同时向所有这些URL发送通知请求。
  • 额外配置建议:
    • metadata字段可以指定要附带的元数据(比如实体创建/修改时间),如果不需要可以去掉。
    • onlyChangedAttrs设为false会发送所有属性的完整数据,设为true则只发送变化的属性,根据你的需求选择即可。
    • expires设置订阅的有效期,避免订阅自动失效(默认Orion订阅会在一定时间后过期)。

注意事项

  • 要确保Orion服务器能访问到每个通知URL对应的服务,比如检查网络连通性、端口是否开放。
  • 提前确认Cygnus、STH-comet等服务已经正确配置,能够处理Orion发送的通知格式(默认是JSON格式的NGSI v2通知)。

内容的提问来源于stack exchange,提问作者Sevastián Ríos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:59:33