Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

145
Vistas
cómo enviar una transmisión de audio entre procesos secundarios en nodejs

¿Cómo envío correctamente la transmisión a un proceso secundario? Estoy tratando de transmitir audio del cliente al servidor usando este método

Estoy recibiendo la transmisión de audio del cliente

 const ss = require('socket.io-stream'); const socketIo = require('socket.io'); server = http.createServer(app); io = socketIo(server); const child_process = childProcess.fork('./child_process.js'); io.on('connect', (client) => { // when the client sends 'stream-transcribe' events // when using audio streaming ss(client).on('stream-transcribe', function(stream, data) { var combine_data = { "data": data, "stream": stream, "event":"new_stream" } child_process.send(combine_data) } }

esta llamada

 child_process.send(combine_data)

lanza el error

node:internal/child_process/serialization:127 const string = JSONStringify(mensaje) + '\n'; ^

TypeError: Conversión de estructura circular a JSON -> comenzando en el objeto con el constructor 'Namespace' | propiedad 'servidor' -> objeto con constructor 'Servidor' | propiedad 'nsps' -> objeto con constructor 'Objeto' --- propiedad '/' cierra el círculo en stringify () en writeChannelMessage (node:internal/child_process/serialization:127:20) en ChildProcess.target._send (nodo: internal/child_process:837:17) en ChildProcess.target.send (node:internal/child_process:737:19) en Socket. (/Volumes/GoogleDrive/My Drive/app/server.js:236:40) en Socket.onstream (/Volumes/GoogleDrive/My Drive/app/node_modules/socket.io-stream/lib/socket.js:184: 14) en Socket.emit (nodo:eventos:526:28) en Socket. (/Volumes/GoogleDrive/My Drive/app/node_modules/component-bind/index.js:21:15) en Socket.emit (node:events:526:28) en /Volumes/GoogleDrive/My Drive/app/node_modules /socket.io/lib/socket.js:528:12

Node.js v17.5.0

¿Qué está causando el error y cómo puedo enviar la transmisión a child_process?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Cualquier dato que envíe usando child_process.send() se convertirá en una cadena usando JSON.stringify() . Los datos que intenta enviar son demasiado complejos para convertirlos en una cadena. En particular, utiliza referencias circulares. Puede verificar esto fácilmente usando console.log() o un depurador.

Puede intentar enviar solo datos que se puedan convertir en una cadena. Probablemente no debería intentar enviar ningún stream y solo enviar los campos de data relevantes.

De lo contrario, probablemente pueda pipe() la secuencia a la stdin del proceso secundario.

Basado en la documentación :

 ss(client).on('stream-transcribe', function(stream, data) { stream.pipe(child_process.stdin); });

En el proceso secundario, puede leer los datos de stdout , que es un flujo legible .

 child_process.stdout.on('data', (chunk) => { // do something with `chunk` });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda