我看过很多关于如何实现socket.io的例子,但我找不到在这个过程中保持电子应用程序结构的例子(通常只是使用express)。我想知道如何用基本的电子应用程序实现socket.io?下面是我的样板代码:
Client.js文件:
const socket = io("http://localhost:3000");
// When client successfully connects to server
socket.on("connect", () => {
console.log(`Connected to server`);
});
// Receive message from backend
socket.on("message", data => {
console.log(`Server: ${data}`);
});
字符串
如果可能的话,我想在我的电子代码中接收上述socket.on
操作(同时保留应用程序内部的东西,而不是删除应用程序代码并通过打开浏览器来执行此操作)
Electron.js样板文件:
const { app, BrowserWindow } = require('electron');
const path = require('path');
// Handle creating/removing shortcuts on Windows when installing/uninstalling.
if (require('electron-squirrel-startup')) {
// eslint-disable-line global-require
app.quit();
}
const createWindow = () => {
// Create the browser window.
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
});
// and load the index.html of the app.
mainWindow.loadFile(path.join(__dirname, 'index.html'));
// Open the DevTools.
mainWindow.webContents.openDevTools();
};
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.on('ready', createWindow);
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow();
}
});
型
任何帮助是赞赏!
1条答案
按热度按时间ftf50wuq1#
我将分享我的工作示例:
Server.ts
字符串
Client.ts
型
并在main.ts中启动服务器
型
在server.ts中,您将看到
origin: "http://localhost:1212"
,这是CORS以避免问题警告。端口1212
是在我的Electron应用程序中用作http服务器端口的数字。详细信息https://socket.io/docs/v4/handling-cors