Acabo de seguir el tutorial de inicio de https://socket.io/get-started/chat . Funciona con un cliente web en el navegador. Pero no emitirá ningún evento a un cliente de electrones. No hay mensajes de error en ninguna consola. Simplemente no conectará el socket en una aplicación electrónica al servidor socket.io.
El problema parece ser el método io.emit(), comentando que la línea hace posible que el cliente electrónico se conecte con éxito al servidor socket.io.
Este es el código del servidor nodejs:
const express = require('express'); const app = express(); const http = require('http'); const server = http.createServer(app); const { Server } = require('socket.io'); const io = new Server(server); app.get('/', (req, res) => { res.sendFile(__dirname + '/index.html'); }); io.on('connection', (socket) => { console.log('a user connected'); socket.on('chat message', (msg) => { //io.emit('chat message', msg); console.log(msg); }); }); server.listen(3000, () => { console.log('listening on *:3000'); });Este es el código del preload.js de la app electron:
const io = require("socket.io-client"); const socket = io('http://localhost:3000'); socket.on('connect', () => { console.log('you are connected!'); }); window.addEventListener('DOMContentLoaded', () => { var messages = document.querySelector('#messages'); var form = document.querySelector('#form'); var input = document.querySelector('#input'); form.addEventListener('submit', function (e) { e.preventDefault(); if (input.value) { socket.emit('chat message', input.value); input.value = ''; } }); })