Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

393
Visualizações
Fuga de memoria websocket node.js. ¿Emisores de eventos?

Recibo la fuga del emisor de eventos después de usar mi código 10 veces esencialmente. Entiendo que el emisor de eventos predeterminado envía automáticamente una advertencia en la consola. Mi pregunta es ¿qué en este código está creando directamente los detectores de eventos? ¿Es una codificación deficiente de mi parte o es solo cómo se apilan los websockets entre sí?

Voy a explicar un poco el código. Tengo un websocket dentro de otro y pensé que enviaría los datos a una página web que fluye esencialmente de Twitch a un sitio de host local. Sin embargo, si utilizo las palabras clave más de 10 veces, aparece el error. No entiendo lo suficiente sobre WebSockets para entender realmente por qué mi código crea un nuevo oyente con cada mensaje de texto recibido, así que cualquier persona con un poco más de comprensión, ¡ayuda!

Creo que mi problema es similar a este , aunque me está costando conceptualizar mi propio código aquí.

 const { paintballShot } = require('./JavaScript/paintballGunFire'); const { readPin } = require('./JavaScript/readPin'); const ws = require('ws'); const express = require('express'); const app = express(); //CONNECT TO TWITCH let client = new ChatClient({ connection: { type: "websocket", secure: true, } }); //connected? client.on("ready", () => console.log("Successfully connected to chat")); client.on("close", (error) => { if (error != null) { console.error("Client closed due to error", error); } }); //create headless websocket const wsServer = new ws.Server({ noServer: true }); wsServer.on('connection', function connection(socket) { //call other websocket connected to Twitch from inside the new websocket client.on("PRIVMSG", (msg, error) => { if (msg.messageText === "right") { socket.send(JSON.stringify(`${msg.displayName}: ${msg.messageText}`)); } if (msg.messageText === "left") { socket.send(JSON.stringify(`${msg.displayName}: ${msg.messageText}`)); } if (msg.messageText === "fire") { socket.send(JSON.stringify(`${msg.displayName}: ${msg.messageText}`)); paintballShot(); } if (msg.messageText === "pin") { readPin(); } process.on('uncaughtException', function (err) { console.log(err); }); }); client.connect(); client.join("channel"); socket.on('message', message => console.log(message)); }); // `server` is a vanilla Node.js HTTP server const server = app.listen(3000); server.on('upgrade', (request, socket, head) => { wsServer.handleUpgrade(request, socket, head, socket => { wsServer.emit('connection', socket, request); }); }); process.on('uncaughtException', function (err) { console.log(err); });
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Para terminar, la biblioteca que estoy usando (Dank TwitchIRC) tiene un limitador de velocidad de conexión que parece funcionar si lo agregas a tu cliente de chat al principio. Si lo configuro lo suficientemente bajo, dependiendo de los mensajes recibidos de Twitch, finalizará las conexiones igual de rápido, lo que significa que no habrá pérdida de memoria.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda