Невозможно запустить сервер сокетов, когда электронное приложение скомпилировано на рабочий стол - PullRequest
0 голосов
/ 23 января 2020

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

Проблема возникает, когда я компилирую приложение и пытаюсь запустить его из на рабочем столе я получаю сообщение об ошибке подключения к сокету.

Клиентская сторона:

import io from "socket.io-client";
const socket = io("http://localhost:1447");

Сервер сокетов (запускается через сценарий предварительной загрузки):

const app = require("express")();
const cors = require("cors");
app.use(cors());
var server = app.listen(1447, function() {
    console.log(`successfully listening on 1447!`);
  })
var io = require('socket.io').listen(server);

elect / main. js:

app.on('ready', function () {
  // Initialize the window to our specified dimensions
  win = new BrowserWindow({
    width: 1000, 
    height: 600,
    webPreferences: {
      contextIsolation: false,
      preload: path.resolve(__dirname, "./preload.js") //socketserver initialized within this file
    },
  });

win.loadURL(`file://${__dirname}/dist/index.html`);

Предварительная загрузка. js:

const { ipcRenderer } = require('electron');
const shell = require('shelljs');
let check = null;

const executeScript = () => {
    try {
        log.info('execute script');
        shell.config.execPath = shell.which('node');

        check = shell.exec('node ./server/socketServer.js', {
            async: true
        })
        if(check) {
            log.info('success socket started');
            ipcRenderer.send('socket-started');
        }

    } catch (error){
        log.warn('error', error)
    }
}
executeScript();

Моя теория состоит в том, что соединение с сокетом отказывается, потому что я использую http://localhost: 1447 для подключения, но, поскольку на самом деле это файл, который обслуживается на рабочем столе, эта конечная точка могла измениться после компиляции. Я также проверял ранее и, насколько я в силах, исполняемый файл socketServer правильно запускается при запуске приложения даже в режиме рабочего стола, и, таким образом, Я считаю, что проблема заключается в клиентском соединении .

любая помощь будет высоко ценится

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