Cygnus 是否已经接受 NGSI2?

Does Cygnus already accept NGSI2?

基于此post ()几个月前还在讨论Cygnus是否支持NGSIv2。有评论说这个issue是scheduled,还没有实现

问题:已经实现了吗?我们怎么知道?

我的困惑提醒是因为在基于NGSIv2创建订阅时,弹出创建成功消息的结果(即201),但仍然无法监控我的订阅记录到Orion。

我正在这样创建我的订阅:

Content-Type:application/json
Accept: application/json
Fiware-Service: test
Fiware-ServicePath: /device

{ 
      "description": "One subscription to rule them all",  
      "subject": {    
        "entities": [ {        
          "idPattern": ".*",        
          "type": "smarthphone" } ],    
        "condition": {      
          "attrs": [ "battery" ], 
          "expression": { "q": "battery!=0" }    
          }
        },  
        "notification": {    
        "http": {      
          "url": "<MY COSMOS IP>:5050/notify" },    
          "attrs": [ "battery" ]  
        },  
        "expires": "2120-04-05T14:00:00.00Z",  
        "throttling": 1
    }

这就是我得到的:

Connection: Keep-Alive
Content-Length: 0
Location: /v2/subscriptions/587c62fcfebdbe5f74bad77b
Fiware-Correlator: f9a96bd0-dbb1-11e6-93ea-0242ac110004
Date: Mon, 16 Jan 2017 06:06:52 GMT

但是当我检索到这样的订阅时,它并没有显示:

.../v2/subscriptions/587c62fcfebdbe5f74bad77b

有什么提示我做错了什么吗?

"Cygnus does not support NGSIv2" 表示服务端口不接受 NGSIv2 通知(默认情况下,TCP/5050)。目前只接受 NGSIv1 通知。

不过,我们在 Cygnus API 中添加的是一个关于订阅 Orion 的便利操作,可以使用 NGSIv1 或 NGSIv2 订阅格式。我想这就是你测试过的(没有成功)。在内部,这样的操作仅实现给定订阅的转发(到给定的 Orion 端点)。如果天鹅座 API 说一切顺利,那是因为猎户座说一切顺利。

无论如何,一旦我在身边进行测试,我将编辑此 post。同时,您可以忽略天鹅座API,直接使用猎户座API。

如果您使用 headers Fiware-Service: test 创建了实体并且 Fiware-ServicePath: /device ,您还需要在请求(GET、PUT 等)中使用这些 headers。