首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在node应用中嵌入多个node-red实例

如何在node应用中嵌入多个node-red实例
EN

Stack Overflow用户
提问于 2016-08-29 18:17:18
回答 2查看 4.5K关注 0票数 3

此处的Node-red文档提供了有关如何在nodejs app - http://nodered.org/docs/embedding中嵌入单个node-red应用程序的信息

我们希望我们站点的用户在不同的端口上有他们自己的node-red,以便进行一些自定义编程。可以在一个nodejs应用程序中嵌入多个node-red应用程序吗?

我尝试通过更改不同端口的每个调用的设置来重复相同的嵌入步骤,但只创建了一次。第一次,基于设置创建了一个节点红色实例。下一次调用时,我们将使用port。我认为这与节点需要进行缓存和所有...是否有解决此问题的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-29 18:44:35

不,目前Node-RED没有多用户能力,也无法在一个进程中实例化多个实例。

您必须为每个用户运行应用程序的单独实例。让我们看看像FRED这样的例子。这将运行单独的实例并代理它们,以使集成看起来都在同一端口/域上

票数 0
EN

Stack Overflow用户

发布于 2017-11-03 22:26:51

如果你感兴趣,我创建了一个node-red项目的分支,允许这个特性。

下面是如何启动它的方法:

代码语言:javascript
运行
复制
var http = require('http');
var express = require("express");
var RED = require("node-red")();
var RED2 = require("node-red")();

// Create an Express app
var app = express();

// Add a simple route for static content served from 'public'
app.use("/",express.static("public"));


// Create a server
var server = http.createServer(app);


// Create the settings object - see default settings.js file for other options
var settings = {
    httpAdminRoot:"/red1",
    httpNodeRoot: "/api",
    userDir:"./hhh",
    functionGlobalContext: { }    // enables global context
};



// Initialise the runtime with a server and settings

RED.init(server,settings);

console.log(RED2.settings === RED.settings, 888, RED2.settings.userSettings);

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


server.listen(8005);


// Start the runtime
RED.start();


var app2 = express();
app2.use("/",express.static("public"));
var server2 = http.createServer(app2);
var settings2 = {
    httpAdminRoot:"/red2",
    httpNodeRoot: "/api",
    userDir:"./hhhh",
    functionGlobalContext: { }
};

RED2.init(server2,settings2);
app2.use(settings2.httpAdminRoot,RED2.httpAdmin);
app2.use(settings2.httpNodeRoot,RED2.httpNode);



RED2.start();
server2.listen(8006);

console.log(RED.settings.httpAdminRoot);
console.log(RED2.settings.httpAdminRoot);
console.log(RED2.settings === RED.settings);

此外,还可以在同一端口上工作。但请确保使用不同的路径。

https://github.com/aryeharmon/node-red

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39203799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档