0

IBM Bluemix にデプロイされた非常に単純なアプリケーション ノードがあります。このノード アプリは、同じマシンでノード RED インスタンスをプログラムで開始し、/red エンドポイントでノード RED UI を提供します。

ノード RED インスタンスを開始するエンドポイント /startinstance があります。

これは私が使用しているコードです:

var RED = require('node-red');
var express = require('express'),
    app = express(),
    server = require('http').createServer(app);

var port = env.PORT:

var settings = {
    httpAdminRoot: '/red',
    httpNodeRoot: '/api',
    userDir: instance.userDirectory,
    functionGlobalContext: { }
};

app.get('/startinstance', function(req, res, next) {
    RED.init(server, settings);
    // Serve the editor UI from /red
    app.use(settings.httpAdminRoot,RED.httpAdmin);

    // Serve the http nodes UI from /api
    app.use(settings.httpNodeRoot, RED.httpNode);

    RED.start();
});

app.get('/stopinstance', function(req, res, next) {
    RED.stop();
});

server.listen(port);

I node RED UI はiFrame、メイン アプリケーション UI に埋め込まれています。

これは正常に機能し、ノード RED インスタンスを正常に開始できます。ノード RED UI に初めてアクセスすると、正常に動作します。しかし、インスタンスを停止して再起動すると、以下に示すように、Google Chrome コンソールで Web ソケット エラーがスローされます。

「ws://myapp.mybluemix.net/red/comms」への WebSocket 接続に失敗しました: 無効なフレーム ヘッダー red.min.js:16

そして、これはSafariコンソールのエラーです:

'ws://myapp.mybluemix.net/red/comms' への WebSocket 接続に失敗しました: ネゴシエートされた deflate-frame 拡張がない場合、圧縮ビットは 0 でなければなりません

このセットアップは localhost では正常に機能していますが、これが Bluemix でエラーをスローする理由がわかりません。

4

0 に答える 0