Это именно после того, как я скомпилировал и собрал электронное приложение, используя электронный строитель. Я могу отлично запустить это приложение, используя электрон. из терминала, и он будет запускать как скомпилированное приложение 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 правильно запускается при запуске приложения даже в режиме рабочего стола, и, таким образом, Я считаю, что проблема заключается в клиентском соединении .
любая помощь будет высоко ценится