2016-06-20 15 views
1

からの通知、以下のサブスクリプションの通知を取得するには、orion.lab.fiware.org:1026に追加:私はオリオンコンテキストブローカーとしたいと働いていますオリオンコンテキストブローカー

curl -v orion.lab.fiware.org:1026/v2/subscriptions -X POST -s -S --header 'Content-Type: application/json' --header "X-Auth-Token: <myToken>" -d @- <<EOF 
{ 
    "description": "A subscription to get info about Room1", 
    "subject": { 
    "entities": [ 
     { 
"id": "11582",   
"type": "User" 
     } 
    ], 
    "condition": { 
     "attrs": [ 
     "temperature" 
     ] 
    } 
    }, 
    "notification": { 
    "http": { 
     "url": "http://<myIPAddress>:8080" 
    }, 
    "attrs": [ 
     "temperature" 
    ] 
    }, 
    "expires": "2040-01-01T14:00:00.00Z", 
    "throttling": 5 
} 
EOF 

myToken:FIWAREサーバー

によって生成されたトークンmyIPAddress:自分のPCのIPアドレス

私のサンプルHTTPサーバー(Node.js)のポート8080では、通知はありません。私は上記のサブスクリプションを追加した後、idが11582のエンティティを別のPOSTリクエストでorion.lab.fiware.org:1026/v2/entitiesに追加することに注意してください。私は後で追加のサブスクリプションを読んだとき

、それは通知が(lastNotificationを通じて)送られたことを確認:

{ 
    "id": "5768088c70dce43aa351cf9b", 
    "description": "A subscription to get info about Room1", 
    "expires": "2040-01-01T14:00:00.00Z", 
    "status": "active", 
    "subject": { 
    "entities": [ 
     { 
     "id": "11582", 
     "idPattern": "", 
     "type": "User" 
     } 
    ], 
    "condition": { 
     "attrs": [ 
     "temperature" 
     ] 
    } 
    }, 
    "notification": { 
    "timesSent": 1, 
    "lastNotification": "2016-06-20T15:16:04.00Z", 
    "attrs": [ 
     "temperature" 
    ], 
    "attrsFormat": "normalized", 
    "http": { 
     "url": "http://<myIPAddress>:8080" 
    } 
    }, 
    "throttling": 5 
}  

私は通知I私のHTTPサーバプログラムを受信しない理由を任意のアイデア?ファイアウォールもオフになっています。

ありがとうございます!

答えて

0

following tesは、orion.lab.fiware.orgにありません。 termina1l.txtファイルには、Orionに送信されたサブスクリプションとエンティティ作成要求が表示されます(テストはorion.lab.fiware.orgホスト自体で実行されているためlocalhost:10026を使用します)。terminal2.txtファイルには受信した通知が表示されますリスナープロセスで(nc)。

セキュリティグループ内の1028ポートのオープンエンドを使用して、FIWARE Lab(セキュリティ上の理由でIPを公開することはできません)のVMマシン上でリスナーを実行する同じテストを行いました細かい再び、取得:

POST/HTTP/1.1 
user-agent: orion/1.2.1 libcurl/7.19.7 
host: 130.206.112.29:1028 
accept: application/json 
content-length: 146 
content-type: application/json; charset=utf-8 
fiware-correlator: 0870b41c-378d-11e6-910f-52540003a38e 
ngsiv2-attrsformat: normalized 
X-Forwarded-For: 127.0.0.1 
Connection: keep-alive 

{"subscriptionId":"5768ff6a70dce43aa351cfaa","data":[{"id":"11582","type":"UserTest2","temperature":{"type":"Float","value":23.5,"metadata":{}}}]} 

をこのように、私はorion.lab.fiware.orgとあなたのプロセスの間に何かがトラフィックをブロックしていることを理解しています。あなたのマシンで実行されているファイアウォール(離れていると言います)は別のファイアウォールレイヤーがブロックされている可能性があります(例:FIWAREクラウドまたはAWSクラウドセキュリティグループ、coorporateファイアウォールなど)

+1

ありがとうございます!私は私のIP/Serverが他のネットワークからアクセスできないことを発見しました。私はその原因を発見できませんでしたが、今はAmazon AWS Ubuntuインスタンスでテストしました。私のhttserverはアクセス可能で、Orionから通知を受け取ります。 – Amir

+0

あなたは大歓迎です!あなたが役に立つとわかったら私の答えを受け入れてupvoteしてください。私の自我を食べるのではなく)、他のユーザーが答えが正しいことを示すのに役立ちます。 – fgalan

+0

私は私の返信を書いた直後にあなたを投票しようとしましたが、十分な評判を得ていないので、スタックオーバーフローは私の投票を考慮しません:-(:-)、申し訳ありません! – Amir

関連する問題