hola, como saben, el servidor público está inactivo, así que intenté alojar mi servidor en el servidor del mismo nivel. Ya tenía un servidor nodejs/express para chatear... así que intenté integrar el servidor del mismo nivel en mi servidor de chat.
aquí está la versión simplificada de mi código
const env = require('dotenv').config({ path: '.env' }) const express = require('express'); const { ExpressPeerServer } = require('peer'); const fs = require('fs'); const app = express(); const https = require('https'); const http = require('http'); let server ; if(env.parsed.PROTOCOL === 'https') { // server = create https server } else { server = http.createServer( app); } const { Server } = require("socket.io"); const io = new Server(server); const peerServer = ExpressPeerServer(server, { debug: true }); app.use('/peerjs', peerServer); io.sockets.on('connection', function(socket) { console.log(`@ connection | socket -> ${socket.id} |`); }); var PORT = env.parsed.PORT || 8080 server.listen(PORT, () => { console.log(`listining to port ${PORT} `); });el problema es que después de agregar un servidor par a mi código, no puedo establecer ninguna conexión socket.io con el servidor... no obtengo errores en el servidor, solo obtengo el error del lado del cliente
La conexión de WebSocket a 'ws://localhost:8080/socket.io/?EIO=4&transport=websocket' falló: encabezado de marco no válido
el servidor está activo y funcionando, si escribo localhost:8080 en el navegador, obtendré la respuesta
si elimino el código del servidor de pares, funcionaría bien
Puedo mover el servidor del mismo nivel para separar el código y ejecutarlo en un puerto diferente, pero prefiero mantenerlo en este código
¿Alguna idea de por qué sucede esto?
Según este problema , no es posible ejecutar socket.io y un servidor PeerJS en la misma instancia de Express (servidor/http(s)).
Debería poder iniciar un servidor PeerJS separado desde el mismo archivo de código, como se explica aquí :
const { PeerServer } = require('peer'); const peerServer = PeerServer({ port: 9000, path: '/myapp' });