electron 有没有什么方法可以让我把nodejs应用程序作为服务器运行,并让它与部署的电子应用程序进行通信?

evrscar2  于 2022-12-16  发布在  Electron
关注(0)|答案(2)|浏览(323)

我最近用electron创建了一个客户端应用程序,它目前是独立运行的。我希望它能有这样的功能,我可以发送一个字符串到所有的电子应用程序,可能是通过创建一个nodejs服务器来做到这一点。电子应用程序将接收这个字符串,并在我附加到它的任何函数中使用它。
这不是与后端通信的电子前端。这是与电子后端通信的外部节点服务器。因此,它将是作为服务器运行的1个主节点应用程序和部署在不同机器上的电子应用程序。
这是否真的可以做到呢?
是否有任何节点包可以允许从主服务器到电子应用程序的通信?任何有文档记录的包都将是非常有帮助的,这样我就可以在集成它之前了解它是如何工作的。
我看到了socket-io,但似乎更基于网络的客户端服务器,除非我解释错了?
任何帮助都很感激,谢谢!

roejwanj

roejwanj1#

希望我没理解错你的问题。
每个Electron安装都可以在其主进程或渲染器进程中运行Web服务器。
Electron安装需要将它们当前的IP地址传送到“主”节点服务器,以便于从“根”服务器节点对它们进行回调。
然后,主服务器节点将回调每个当前的Electron示例,并通知它们最新的字符串值。
如果在开放的互联网上这样做,你会遇到网络代理/防火墙/安全相关的问题。你需要确定你想这样做的原因。它只会在一些有限的情况下工作。
一个更实际的替代方法是从每个Electron示例例行“轮询”主服务器,并获取最新的字符串值。
您可以考虑其他替代方案,如Web套接字、消息队列、React式技术、某些移动的/桌面平台上的“通知”API或对等协议?
这样的解决方案可能更容易或更合适,这取决于您的应用程序。例如,您正在实现一个“聊天”应用程序,您正在流音频和视频等?
有趣的问题!

3mpgtkmj

3mpgtkmj2#

是的。这太简单了,我正在和你分享我的经验。只要创建你的node.js的server.js文件,并在电子生成文件的index.js中用正确的路径调用该文件。

//server.js

const express = require('express');

const app = express();

const cors = require('cors');
var bodyParser = require('body-parser');

app.use(cors());

app.listen(8880, function () {
    console.log("Listen to Port 8880!");
});

在indexjs中调用节点服务器文件

//index.js

const { app, BrowserWindow, Menu } = require('electron');

const express = require('./server.js'); <--- calling your node js

现在只需要执行电子命令和. yeehh!!它的工作和你的节点服务器也是活在港口无论你给.通过这种方式,你可以创建你的REST API在节点和利用它在ELECTRONJS的好处.希望你得到你的答案.

相关问题