2

我测试了 Orion 设置 Cygnus 实例作为参考的基本订阅机制,它运行良好:一旦 Orion 接收到我的实体的 updateContext,它就会向 Cygnus 发出通知,将数据保存到默认的 mySQL 数据库中。

但是,如果我将以下标头添加到订阅中:

fiware-service: sat Fiware-ServicePath: /proto1

为了将数据保存在另一个 mySQL 数据库中,Orion 接受订阅但不会向 Cygnus 发出任何通知。

我尝试将相同的标头添加到 updateContext REST 调用中,但没有成功。任何想法?

PS:

猎户座 0.22 版

天鹅座 0.8 版

4

1 回答 1

2

我发现了问题:还必须在实体(*)的注册中插入标题。所以,正确的操作顺序是:

1) 首先,使用 POST /NGSI10/updateContext 调用注册您的实体,在有效负载中指定“APPEND”updateAction 并包括“fiware-service”和“fiware-servicepath”标头。

2) 对 Orion 进行订阅 (/ngsi10/subscribeContext),包括与上面完全相同的标头

3)更新您的实体,包括上面的标题

(*)由于我使用数据处理 GE 作为 NGSI 源并使用 Orion 作为事件接收器,因此数据处理 GE 在 esper 规则/语句设置的某些条件下直接触发对我的实体的更新。似乎数据处理 GE 在对事件接收器执行更新时不会添加标头。

于 2015-05-27T20:19:30.067 回答