Actualmente estoy desarrollando un sitio web local donde las personas pueden escanear un código QR en su mesa, para que ingresen el nombre del canal de contracción que desean ver en la pantalla junto a ellos, en un sitio web que se abre.
Como soy bastante nuevo en la programación, fue difícil, pero encontré y aprendí SocketIO, lo que me permitió escalar el proyecto a cada pantalla que tenemos.
Pero el problema ahora es que no puedo Controlar/anular los diferentes servidores en diferentes puertos.
Los servidores están configurados así:
10.10.30.36/Cliente: 4000
10.10.30.36/Pantalla: 4000
10.10.30.36/Cliente: 4001
10.10.30.36/Pantalla: 4001
Entonces 4000 puede interactuar, pero 4000 no puede interactuar con 4001. Estoy tratando de crear una página de administración que pueda anular todas las pantallas.
He intentado diferentes soluciones a este problema durante 35 horas y aún no he encontrado ninguna.
Mi código está configurado de esta manera: (He intentado ejecutar los diferentes servidores usando una matriz de puertos y una declaración forEach en su lugar, pero encontré este enfoque para darme un poco más de control).
var express = require("express"); var socket = require("socket.io"); var app = express(); app.use(express.static(__dirname + '/public')); app.use("/screen", express.static(__dirname + '/screen')); app.use("/admin", express.static(__dirname + '/admin')); function RUN() { function RUN4000() { var port2 = socket(port= app.listen(4000)); RUN2(port2) } function RUN4001() { var port2 = socket(port= app.listen(4001)); RUN2(port2) } RUN4000(); RUN4001(); function RUN2(port2) { port2.on("connection", function test(socket){ console.log("Made socket connection") ///If the Client-page sends a Twitchname, run Run(Twitch Name)// socket.on("Twitch", function(data){ run(data) }); }); function run(data){ console.log("Recived Message"); port2.sockets.emit("restart browser", data); //Sends the Twitch Name to the Screen-page setTimeout(function(){ port2.sockets.emit("Twitch", data); }, 1000); } } } RUN() He intentado detener los servicios con una especie de if (response from adminpage == true) { return false; } else { RUN4001; RUN 4000; } , pero los servidores no se detendrán incluso si la declaración es verdadera. También probé un enfoque en el que la página de administración estaba en el puerto 5000, separada y luego pasé el nombre de Twitch a las funciones a RUN2, pero tampoco funcionó.
He estado atascado en este paso durante mucho tiempo, ¿alguien tiene alguna idea sobre cómo puedo controlar los diferentes puertos/servidores desde una página de administración?