我测试了Orion的基本订阅机制,设置了一个Cygnus实例作为参考,它运行良好:一旦Orion收到我的实体的updateContext,它会向Cygnus发出一个通知,将数据保存到默认的mySQL数据库 .
但是如果我将以下 Headers 添加到订阅中:
fiware-service:sat Fiware-ServicePath:/ proto1
为了将数据保存在另一个mySQL数据库中,Orion接受订阅,但不会向Cygnus发送任何通知 .
我尝试将相同的标头添加到updateContext REST调用但没有成功 . 任何的想法?
PS:
猎户座版0.22
天鹅座0.8版
1 回答
我发现了问题:还必须在实体(*)的注册中插入 Headers . 因此,正确的操作顺序是:
1)首先,在POST / NGSI10 / updateContext调用中注册您的实体,在有效负载中指定“APPEND”updateAction,并包括“fiware-service”和“fiware-servicepath”头 .
2)向Orion订阅(/ ngsi10 / subscribeContext),包括与上面完全相同的 Headers
3)更新您的实体,包括上面的 Headers
(*)由于我使用Data Handling GE作为NGSI源和Orion作为事件接收器,因此我的实体的更新由Data Handling GE在esper规则/语句设置的某些条件下直接触发 . 似乎Data Handling GE在对事件接收器执行更新时不添加标头 .