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

224
Visualizações
NodeJS como SSE-Client con múltiples conexiones

Estoy usando la API de terceros de IEXCloud en mi aplicación. Estoy atascado con la forma de crear múltiples conexiones para la solicitud de SSE en NodeJS.

 let url = `https://cloud-sse.iexapis.com/stable/stocksUSNoUTP?token=${token}&symbols=aapl,amzn,twtr` function connect() { stream = request({ url: url, headers: { 'Content-Type': 'text/event-stream' } }) } connect(); stream.on('socket', () => { console.log("Connected"); }); stream.on('end', () => { console.log("Reconnecting"); connect(); }); stream.on('complete', () => { console.log("Reconnecting"); connect(); }); stream.on('error', (err) => { console.log("Error", err); connect(); }); stream.on('data', (response) => { var chunk = response.toString(); var cleanedChunk = chunk.replace(/data: /g, ''); if (partialMessage) { cleanedChunk = partialMessage + cleanedChunk; partialMessage = ""; } var chunkArray = cleanedChunk.split('\r\n\r\n'); chunkArray.forEach(function (message) { if (message) { try { var quote = JSON.parse(message)[0]; console.log(quote); } catch (error) { partialMessage = message; } } }); }); function wait () { setTimeout(wait, 1000); }; wait();

Aquí puedo solicitar la conexión única y también puedo recibir datos de transmisión.

Pero mi escenario es si tengo dos URL como las siguientes.

 https://cloud-sse.iexapis.com/stable/stocksUSNoUTP?token=${token}&symbols=aapl,amzn,twtr https://cloud-sse.iexapis.com/stable/stocksUSNoUTP?token=${token}&symbols=isf,avv,nflx

¿Cómo manejo ambas URL por separado con conexión múltiple?

No obtener suficiente idea al buscar en Google.

Gracias

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Primero, está creando implícitamente una stream de variable global en su connect() . No hagas esto, ya que conduce a errores. Esto es muy importante: cuando su secuencia de comandos actual llame a connect() por segunda vez, estará rehaciendo stream , lo que significa que todos los controladores de eventos que ha asignado se perderán.

Entonces, después de eso, una forma de hacerlo es copiar y pegar la duplicación: stream1 y stream2 como funciones globales, connect1() y connect2() , y url1 y url2 .

En ese punto tienes algo funcionando. Entonces, a menos que sea un script descartable, el siguiente paso será sacar Refactoring de Martin Fowler (la segunda edición, de 2018, muestra ejemplos en JavaScript) del estante y comenzar a refactorizar. Por ejemplo, extraiga el controlador de eventos de datos en una función independiente. Por ejemplo, haga que connect() tome la url y devuelva el stream (con todos los controladores de eventos ya adjuntos).

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