0

Bluemix スペース内のノード化されたインスタンスからセキュア ゲートウェイ経由で Tririga OSLC API にアクセスすると、エラーが発生します。Tririga サーバーは、インドのプネにある私のオフィスでホストされています。Bluemix ゾーンは米国南部です。

エラー:

Error: socket hang up : cap-sg-prd-3.integration.ibmcloud.com:15343/tririga/oslc/spq/triAllParkingLotsQC?oslc.select=*&oslc.where=spi:cstSensorId=15 

SyntaxError: undefined:1 Error: socket hang up :  ^ Unexpected token E

postman で URL にアクセスしても問題はありません。これは、2 つの DC 間のリンク速度と関係がありますか? Bluemix ゲートウェイの速度テストでは、アップ リンクとダウン リンクの両方で 200 ミリ秒のレイテンシーが示されています。

追加情報: サンプル アプリケーションを実行して Tririga を問題から外しました。下部に、同じ Tririga サーバーで実行されるサンプル ノード アプリ コードが表示されます。ゲートウェイ サービスで新しい宛先を作成し、新しい宛先のゲートウェイ ホストとポートを使用して NodeRed フロー経由で API にアクセスしようとしました。この API にも同じ問題があります。

エラー: ソケットがハングアップしました: cap-sg-prd-3.integration.ibmcloud.com:17451/inventory

以下のサーバー要求 '/inventory' の両方のコンソール ログがオンプレミス サーバー コンソールに表示されます。

var express = require('express');

// create a new express server
var app = express();

var inventories= [
  { city : 'Beijing', quantity : 1000},
  { city : 'Shanghai', quantity : 500},
  { city : 'Guangzhou', quantity : 1000},
  { city : 'Shenzhen', quantity : 800}
];

//Get the inventory data
app.get('/inventory', function(req, res) {
  console.log("Request received");
  res.send({"code":1000, "inventory":inventories});
  console.log("Request sent");
});

app.listen(8000, function() {
   //print a message when the server starts listening
  console.log("server started on 8000");
});

もう 1 つの観察結果として、http://cap-sg-prd-3.integration.ibmcloud.com:17451 /inventory には、ブラウザーまたは postman を介して問題なくアクセスできます。

4

1 に答える 1

1

ありがとうガレン。原因がわかりました。keep-alive ヘッダーを追加することで、問題を解決できました。正確を期すために、URL を呼び出す前に Node Red 関数に以下を追加しました。

[{"id":"ef815a6f.f94ed8","type":"function","z":"280728a8.c953b8","name":"Tririga セッション","func":"\nvar get_headers = フロー。 get(\"get_headers\");\n\nif (get_headers === null) {\n var sessionid = msg.headers['set-cookie'];\n msg.headers = {\"connection\": \"Keep-Alive: timeout=15, max=100\",\"cookie\":sessionid};\n flow.set(\"get_headers\",msg.headers);\n \n}\n\ nmsg.statusCode = \"\";\nmsg._msgid = \"\";\n\nメッセージを返す;","出力":1,"noerr":0,"x":1697.9458847045898,"y":142.6542739868164 ,"ワイヤ":[["f110f408.7fc428"]]}]

于 2016-09-09T06:25:15.737 に答える