Можно ли как-нибудь запустить приложение nodejs в качестве сервера и установить связь с развернутыми электронными приложениями? - PullRequest
0 голосов
/ 18 февраля 2019

Я недавно создал клиентское приложение, использующее электронное приложение, которое в настоящее время работает автономно.Мне бы хотелось, чтобы он имел функциональность, позволяющую отправлять строку всем электронным приложениям, возможно, создав для этого сервер nodejs.Электронные приложения будут затем получать эту строку и использовать ее в рамках любой функции, которую я к ней прикрепляю.

Это не внешний интерфейс электрона, взаимодействующий с внутренним интерфейсом.Это внешний сервер nodejs, взаимодействующий с электронным бэкэндом.Таким образом, это будет 1 основное приложение nodejs, работающее как сервер, и электронные приложения, развернутые на разных машинах.

Достигается ли это на самом деле?

Существуют ли какие-либо пакеты узлов, которые могли бы разрешить эту связь от главного сервера к электронным приложениям?Любые документированные пакеты будут очень полезны, поэтому я могу понять, как они функционируют, прежде чем интегрировать их.

Я видел socket-io, но это выглядело скорее как веб-клиент-сервер, если я не интерпретировал его неправильно?

Любая помощь приветствуется, спасибо!

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Да.Это слишком просто, я делюсь с вами своим опытом.Просто создайте файл server.js для node.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!");
});

вызовите файл сервера вашего узла в индексе js

//index.js

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

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

теперь просто нужно выполнить электронную команду и.yeehh !!он работает, и ваш сервер узла также работает в режиме PORT независимо от того, что вы дали.таким образом вы можете создать свой REST API в узле и воспользоваться его преимуществами в ELECTRONJS.Надеюсь, ты получил ответ.

0 голосов
/ 18 февраля 2019

Надеюсь, я правильно понимаю ваш вопрос.

Каждая установка Electron может запускать веб-сервер в процессе основного или рендерера.

Установкам Electron потребуется сообщить свой текущий IP-адрес серверу «основного» узла, чтобы облегчить обратный вызов к ним с узла «корневого» сервера.

Затем узел главного сервера будет вызыватьвернуться к каждому текущему экземпляру Electron и проинформировать их о последнем строковом значении.

Вы столкнетесь с проблемами сетевого прокси / брандмауэра / безопасности, если будете делать это через открытый интернет.Вы должны быть уверены в том, что / почему вы хотели бы сделать это.Это будет работать только в некоторых ограниченных сценариях.

Более практичной альтернативой для этого будет регулярный "опрос" основного сервера из каждого экземпляра Electron и получение последнего строкового значения.

YouМожно ли рассмотреть альтернативы, такие как веб-сокеты, очереди сообщений, реагирующие технологии, API-интерфейс «уведомления» на некоторых мобильных / настольных платформах или протокол одноранговой сети?

Такие решения могут быть проще или более подходящими в зависимости от вашего приложения.Например, вы используете приложение для чата, потоковое аудио и видео и т. Д.?

Интересный вопрос!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...