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

147
Visualizações
Agregue cada mensaje WebSocket a div - VUE3

Estoy tratando de representar cada operación desde Binances Websocket Stream en mi componente VUE3. Puedo renderizar 1 línea y esa línea sigue actualizándose, sin embargo, esto no es lo que estoy tratando de lograr. Muchas gracias por todas las sugerencias/soluciones.

 <template> <div> <div v-for="data in tradeDataList" :key="data.id"> <div> {{ data }} </div> </div> </div> </template> <script> export default { name: 'App', data: () => { return { connection: null, tradeDataList: [], } }, created() { this.getTradeStream(); }, methods: { getTradeStream() { console.log("Starting connection to WebSocket Server"); this.connection = new WebSocket("wss://stream.binance.com:9443/ws/btcusdt@trade"); this.connection.addEventListener("message", (event) => { let tradeDataString = event.data; this.tradeDataList = []; let parsedData = JSON.parse(tradeDataString); this.tradeDataList = parsedData; console.log(this.tradeDataList); }); this.connection.onopen = function (event) { console.log(event); console.log("Successfully connected to the echo websocket server..."); }; } } } </script>

Probé v-for looping a través de this.tradeDataList: esperaba una lista con un intercambio por línea. Lo que vi fue 1 línea que se actualiza constantemente en lugar de crear una nueva línea.

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

0

En lugar de borrar this.tradeDataList = []; y reemplazando el elemento this.tradeDataList = parsedData; empuje el elemento a la matriz. Opcionalmente, elimine elementos antiguos con empalme, etc.

 new Vue({ el: '#app', data: () => { return { connection: null, tradeDataList: [], } }, created() { this.getTradeStream(); }, methods: { getTradeStream() { console.log("Starting connection to WebSocket Server"); this.connection = new WebSocket("wss://stream.binance.com:9443/ws/btcusdt@trade"); this.connection.addEventListener("message", (event) => { let tradeDataString = event.data; let parsedData = JSON.parse(tradeDataString); // push new item to array this.tradeDataList.push(parsedData); // keep only last 10 this.tradeDataList = this.tradeDataList.slice(Math.max(this.tradeDataList.length - 10, 0)) }); this.connection.onopen = function(event) { //console.log(event); console.log("Successfully connected to the echo websocket server..."); }; } } });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.14/vue.min.js"></script> <div id="app"> <div> <div v-for="data in tradeDataList" :key="data.id"> <div> {{ data.t }} - {{ data.p }} </div> </div> </div> </div>

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