Node-RED websocket连接失败,错误无效的帧头

时间:2015-10-25 14:18:04

标签: javascript node.js websocket ibm-cloud node-red

我在IBM Bluemix上部署了一个非常简单的应用程序节点。此节点应用程序将以编程方式在同一台计算机上启动节点RED实例,并在/ red端点上提供节点RED UI。

有一个端点/ startinstance将启动节点RED实例

这是我正在使用的代码:

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);

我的节点RED UI作为iFrame嵌入在主应用程序UI中。

这很好,我可以成功启动节点RED实例。当我第一次访问节点RED UI时,它工作正常。但是当我停止实例并重新启动它时,它会在Google Chrome控制台中抛出一个Web套接字错误,如下所示:

  

WebSocket连接到' ws://myapp.mybluemix.net/red/comms'失败:无效的帧头red.min.js:16

这是Safari控制台中的错误:

  

WebSocket连接到' ws://myapp.mybluemix.net/red/comms'失败:如果没有协商的deflate-frame扩展

,压缩位必须为0

此设置适用于localhost,我不知道为什么会在Bluemix中抛出错误。

0 个答案:

没有答案