Vídeos

WebSockets Client em 15 min! (exemplo em Node.js com Binance)

Thamyres Nunes
Escrito por Thamyres Nunes em 12/08/2021

Olá, tudo bem?

No vídeo de hoje eu vou lhe ensinar como desenvolver um cliente de websockets usando Node.js e tendo as streams da Binance como servidor de exemplo. Se gostou do vídeo, deixe o seu like e se inscreva no canal se ainda não for inscrito.

– Crie sua conta na Binance: https://www.luiztools.com.br/binance

– Lista de espera Beholder TraderBot: https://www.luiztools.com.br/curso-beholder

– Meus cursos: https://www.luiztools.com.br/meus-cursos?utm_source=yt&utm_medium=video&utm_campaign=beholder&utm_content=wsclient

– Meus livros: https://www.luiztools.com.br/meus-livros?utm_source=yt&utm_medium=video&utm_campaign=beholder&utm_content=wsclient

– Minhas redes sociais: https://about.me/luiztools

– Documentação Binance: https://github.com/binance/binance-spot-api-docs/blob/master/web-socket-streams.md

– Tutorial texto e fontes: https://www.luiztools.com.br/post/como-criar-um-cliente-de-websockets-em-node-js/?utm_source=yt&utm_medium=video&utm_campaign=beholder&utm_content=wsclient

– Playlist Bot de criptomoedas: https://www.youtube.com/watch?v=JhU8aQRjDa8&list=PLsGmTzb4NxK2aip0YGJlKIyqJNBzcm4Iw

Um abraço e sucesso.

Prof. Luiz

o Olá tudo bem Aqui é o Luiz e no vídeo
de hoje eu vou lhe mostrar como criar um
cliente e o websockets conecta no
servidor público faz um saco um exemplo
servidor de dados que tomar da balance
para então receber dados em tempo real e
processar os para fazer algum tipo de
operação na sua aplicação Então se o
websockets ou Crypton moedas são
assuntos que interessam que tenho
certeza que a seleção vai ser muito
legal para você ficar direto no código
eu preciso explicar brevemente o que que
é websocket basicamente ao invés de você
criar uma aplicação que ela faz uma
requisição para o servidor e aguardo uma
resposta você pode criar uma aplicação
utilizando tecnologia web sockets onde
você se conecta no servidor E aí a
qualquer momento
e você pode enviar mensagens para ele ou
ele enviar mensagem para você que é o
grande barato da coisa que algo que
normalmente não é possível geralmente é
só cliente enviando nessa vida e servido
respondendo a mesma mensagem né na mesma
requisição com web só que se não você
pode conectar os servidores sempre que
ele quiser me mandar uma novidade sobre
alguma coisa ele devolve uma mensagem
então em linhas Gerais é assim que
funciona websocket e agora nós vamos
implementar um cliente de OAB socket na
prática utilizando um servidor de
informações que tu moedas como exemplo
vamos começar então criando uma pasta
para o nosso projeto e vou dar que uma
amizade ir lá em ti o websockets nós
vamos entrar nessa pasta
o e dentro dela nós vamos instalar um
pacote chamado WS o pacote WS é um
pacote muito popular para construção de
servidores web sockets e também para
cliente websocket que é o que nós vamos
fazer aqui você pode ver aí são quase 40
milhões de downloads semanais né então o
nosso terminal npme WS dentro da pasta
clientwebsocket agora vamos abrir essa
pasta pelas Studio code Open cliente
websocket você vai ver que não vai ter a
noite modos o PEC Jason e o package-lock
Vamos criar um novo arquivo aqui que vai
ser o Windows. JS vai ser muito aquilo
que nós vamos precisar na verdade para
construir um chocolate você já pode
começar esse arquivo carregando uma
classe websocket de dentro do Rick Fire
w-teca da Bros U
e essa classe aqui a gente já ela tanto
que a gente quer criar um servidor
websocket conta que a gente quer criar
um cliente websocket Eu mencionei que a
gente vai criar um cliente utilizando é
um servidor websocket público e muito
interessante que é o servidor da balança
a balança para quem não conhece é uma
hora que tinha que tomadas do mundo e
eles previsão publicamente na em tempo
real os dados né de transações de book
de cotações dos pares de moeda que eles
relacionam somos mais de 1500 pares de
moedas sempre que você for criar um
cliente websocket para um servidor detox
você deve procurar a documentação dele
qual é o URL de conexão você deve
utilizar então aquilo que o aberto com a
documentação do servidor de ouvir
Sócrates da balance precisamos de
procurar logo aqui embaixo lá só que as
regras simples utilizar
o centro carreira de base essa aqui
depois o acesso/WS depois RL e depois o
nome da string que eu quero me conectar
cara servidor websocket você vai se
conectar vai ter o URL diferentes e vai
ter comando diferentes que ele aceita
por exemplo bem como os dados que ele
vai enviar no caso da baiana você tem
duas maneiras de se conectar de uma
maneira direta numa string ou de uma
maneira mais configurável vou fazer
primeiro com você a maneira direta que
talvez seja o cenário que lhe permita né
fazer a conexão com o servidor que você
quer lembrou que os trabalhos aqui
apenas como exemplo beleza em uma
conexão direta com a balance eu vou
utilizar aquela classe websocket ali
para instanciar um novo websocket desse
jeito aqui e entre parênteses no
construtor da bsoft eu passo a URL
completa para string que eu quero
escutar vamos copiar aqui a base
depois/WS/e aqui a gente coloca
É sim bom que a gente vai monitorar o
par de moedas por exemplo btc que o
Bitcoin BRL em reais
a arroba empowering book schicker
Oi tá com o t maiúsculo
a classe tem aqui ela me traz um tempo
real as melhores ofertas de compra e de
venda para um determinado par de moeda
agora com esse objeto WS inicializados
eu vou fazer WS. On Messenger Este é um
event handler eu passo para ele uma
função de callback que eu quero que seja
executada toda vez que o meu cliente
receberam a mensagem vinda do Servidor
só vai receber uma função
e com um evento certo e se ident eu vou
trabalhar dele chamada deita que é os
dados que o servidor me enviou para tu
imprimir para você ver e beleza Já
podemos rodar vou novamente aqui no
nosso terminal nude index você vai ver
em tempo real a informação vindo lá da
baianas para gente
me derrubar aqui e eu vou explicar cada
Servidor da Ubisoft vai lhe mandar dados
num formato que ele quiser certo o
formato mais comum é de Jason mas ainda
assim é bem como as propriedades virem
bem abreviadas como caso aqui ó únicas
letras né que é para um ganho de
performance Mas visto que vão são muitos
dados por segundo trabalho você envia
para milhões na AD apis e de servidores
e de aplicativos conectados nela o tempo
todo aqui no nosso caso o s é o Symbol o
b minúsculo é a melhor oferta de compra
o b maiúsculo a quantidade ofertada o a
minúsculo é a melhor oferta de venda no
book e o a maiúsculo é a quantidade
ofertada de venda Isso aqui é uma
stringhi as mensagens de absorção sempre
stringhi a como vi no formato de Jason
eu posso passear isso né eu posso fazer
com que o BJ que recebe um dias um ponto
parse the event. Deita
e eu posso usar na esse o BJ. A por
exemplo e formatar minha resposta eu
posso colocar aqui o best esc é melhor
oferta de venda posso fazer a mesma
coisa para comprar um best bid o BJ. B e
só para confirmar a gente pode colocar o
símbolo aqui em cima novamente por
pessoa está ciente do que está conectada
é uma passagem do outro macete aqui é
para limpar o console para não ficar
acumulando mensagem que usar que eu
próximas. STD out. Hit vai gostar de
alta saída padrão né que é um caso do
terminal eles vão mandar escrever um
caractere que vai servir para limpar ele
se eu contra a barra 03 e seu salvar e
executar novamente então aqui vai ficar
sendo atualizado conforme aparece nos
mandaram dados sobre esse Palio moedas
aqui se o seu servidor de ouvir só que
ele permite que você conecte apenas a
partir de uma única URL você não dá nem
um comando do jeito que eu mostro aqui
esse conhecimento já é o suficiente para
você passar a receber os dados dele eu
gostaria que você me retribuísse nessa
ajuda que lidei deixando o seu like no
vídeo se inscreva no canal se você ainda
não é inscrito se você teve qualquer
problema deixa nos comentários também
que na sequência eu vou lhe ajudando
Qual foi recebendo notificações YouTube
de que você deixou o seu comentário tá
bom Agora se o seu servidor ele é um
pouquinho mais complexo continua aí no
vídeo que me
a seleção bem importante para você no
entanto muitos servidores de abrir
sockets eles não permitem que você
assine diretamente uma stream de dados
mas que você tem que enviar comandos
para que eles passem a lhe enviar dados
sobre aquele assunto é para assinatura
de tópicos por exemplo ou algo do tipo o
da Barra nesse na diferente eles têm
essa opção de você passar uma série
completa na URL trem ou você passa URL
mais genérica e depois você passa as
informações né das estrias que você quer
assinar no mesmo canal de comunicação
um funcionário logo aqui para baixo a
documentação tem um subscribe e o
subscribe jeans você tem que passar esse
objeto aqui pelo websocket conectado
para que a gente passe a receber as
informações do Symbol que a gente
informou Então vamos voltar para os
projetos fazer algumas modificações nele
Primeira coisa eu vou querer que o
usuário informe na execução do Programa
Qual cima o que ele quer monitorar e daí
a gente vai fazer o subscribe naquele
símbolo específico não vai ficar
chumbado no código mais então aqui eu
vou instalar um outro pacote chamado
ridgeline traços Inc rigiline sim que é
um pacote bem popular no mpm mais 600
mil downloads semanais que nos permite
fazer questionamentos para o usuário e
ele tem que preencher nossos
questionamentos e gente consegue
capturar a resposta e seguir um fluxo da
de execução do nosso programa vamos
instalar aqui ele PM vigilarm simples e
depois instalado nós vamos carregar ele
antes do nosso por sorte então vamos ser
aqui um conste single que vai receber o
nosso
a questão do verde Lines Inc aqui antes
vão carregar ele Grid Lines Inc recebe
um rico aire de reagir Line traz cin é
com esse objeto usuário sim que a gente
pode fazer um ponto question e eu passo
aqui a pergunta qual o par de moedas que
deseja monitorar
o Zé tá num símbolo certo eu vou
carregar a classe ou socket vamos
instanciar nosso absoft mas aí não vai
conectar direto no símbolo específico
poderia poderia mas eu quero mostrar pra
você aqui como é que você manda comandos
do Servidor beleza
e eu vou tirar essa parte aqui do
símbolo ele vai conectar no Botica
genérico que não vai mudar dado nenhum
para gente
Oi e aí além de ter aqui o messenger eu
vou ter uma outra event handler vai ser
on Open que ele é disparado quando a
conexão é efetuada esse evento não têm
parâmetro
bom e o que eu vou fazer dentro dele
quando a conexão for efetuada com
sucesso nesta URL aqui eu vou enviar o
comando do seu escreve para este símbolo
aqui de cima como é que eu não vi um
comando por servidor da Ubisoft eu uso
objeto wsl nosso cliente websocket
pontos and e passo uma stringhi aqui
parando como a baiana se espera divison
eu vou fazer um jason.com fai e aqui
dentro passar o nosso objeto a gente
leva a cotação daqui objeto de precisa
passar a copiar ele jogar aqui dentro
é um método de ar subscribe parâmetros
eu passo as Strings que eu quero me
inscrever na string que eu quero me
inscrever então aqui eu vou escrever na
butcher certo e o símbolo aqui vai ser
dinâmico vamos lá que um template Tang e
passar aqui no início a nossa variável
símbolo que o usuário vai informar em
sensação do programa
E então após Esse comando ser enviado eu
vou começar a receber os dados para que
ele assim vou específico E aí então não
é para começar esse meus dados vai
esperar o senhor Messenger aqui como já
estava fazendo ontem vamos ver contar
novamente
e já perguntar o pai de moeda vou botar
por exemplo btc b o s de né que é
Bitcoin negociados embaixo se dólares
mas ela será pareado com o dólar
americano compra um até agora que eu vou
começar receber então né as informações
acabaram cê tá me mandando de variação
do livro de compra e de venda de btc BSD
a repara ele com vai mudando a melhor a
ordem de venda e de compra desse símbolo
aqui beleza não importa se você vai
estar se integrando de fato com a baiana
só com qualquer outro só que a lógica é
a mesma você vai ter que ter um código
né se ele precisa enviar comando você
vai ter que ter o código de envio de
mensagem e para receber comandos você
vai ter que ter o código aqui de
tratamento do evento de mensagem
recebida e tudo o que você queria
aprender era como fazer um cliente
websocket se conectar no servidor de
absoft não é para receber os dados até
mesmo poder enviar eventualmente dados a
lição termina por aqui eu tenho certeza
aquela suficiente para você avançar aí
na sua implementação agora se você tava
se você assistiu
e o interesse de ver a parte de Strings
com a balança é para fazer um link com
os outros vídeos que aqui no canal sobre
esse assunto de bote aqui tomadas eu
tenho certeza que agora a cabeça está
fervendo com as possibilidades de
reescrita do seu lote tem invés de ficar
batendo na balança de segundo o segundo
por exemplo você pode se conectar
receber as informações e aí processar
toda vez que vieram informações novas
para você que ativar os gatilhos e etc
Então agora você tem bastante material
né para fazer um tema de casa bem bacana
e escrita no seu bote aí lucrar ainda
mais aí com as suas posições de compra e
de venda tendo qualquer dúvida sobre
esse assunto absorventes pode deixar aí
nos comentários e tem o maior prazer em
ajudar eu vou deixar aí na descrição
desse vídeo é o link do olhar um texto
onde você tem acesso também aos Fontes
que eu digitei aqui para você poder
analisar com mais calma e eu também vou
deixar os links dos meus cursos e livros
atrás riquíssimos que podem ajudar muito
a propósito se bote de que tomadas
interessam E você ainda não está na
lista de
é a minha nova Turma para o curso
bermuda 3 bot escreve também no link
está na descrição do vídeo vou mandar
novidade somente para os escritos da
lista de espera agora neste mês de
agosto sobre quando que nós vamos ter as
próximas inscrições Lembrando que na
turma passada as questões encerrar em
menos de 24 horas ou se é um assunto que
interessa cadastro nesse espera Entra no
grupo do WhatsApp de espera também para
sabendo Beleza então vamos pedindo por
aqui antes você sair não esquece de se
inscrever no canal se você ainda não é
inscrito de deixar o like e de
compartilhar esse vídeo com seus amigos
que possam ter interesse sobre o assunto
sobre Sócrates e até mesmo interesse em
construção de box utilizando o Streaming
real-time para alimentar né a memória do
bote um abraço e até a próxima valeu
E aí.

Olá, tudo bem?

O que você achou deste conteúdo? Conte nos comentários.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Assista também

6 dicas de performance em Node.js

React Native CLI - Testando em smartphone Android - Aula Grátis #02

Dicas para currículo de devs

06 dicas para bots de criptomoedas

Sequelize em 15 minutos, direto ao ponto! (2021)

React Native CLI - Configurando no Windows - Aula Grátis #01