Skip to main content
A entrega é no máximo uma vez — não há repetição. O que foi confirmado enquanto você estava desconectado não é reenviado, então um cliente em produção precisa detectar a lacuna e decidir se deve preenchê-la. O sinal para isso é context.slot: ele delimita a janela que você perdeu durante uma desconexão. Este guia cobre por que as conexões são fechadas, como reconectar de forma limpa e como usá-la.

Por Que as Conexões São Fechadas

Toda desconexão tem um código de fechamento do WebSocket que indica o que aconteceu e o que fazer em seguida: O servidor faz pings a cada 15 segundos, então uma conexão saudável, mas silenciosa, ainda carrega tráfego. Se você não vir nada por mais de um minuto — nenhuma notificação, nenhum ping — assuma que a conexão está morta e reconecte em vez de esperar que o socket lhe diga.

Mantenha a Conexão Viva

Se seu filtro for estreito o suficiente para que possa passar 10 minutos sem uma correspondência, envie um JSON-RPC ping explícito em um intervalo menor do que isso:
Ele retorna o slot atual e, mais importante, conta como uma mensagem do cliente para o temporizador ocioso. Um quadro de ping do WebSocket a nível de biblioteca não conta.

Reconectar e Detectar a Lacuna

1

Reconectar com Backoff

Em qualquer desconexão — esperada ou não — reconecte com backoff exponencial. IDs de assinatura não sobrevivem a uma reconexão, então reenvie parsedTransactionSubscribe para cada filtro que você tinha aberto.
2

Acompanhe context.slot Através de Desconexões

Mantenha o último context.slot que você viu antes da desconexão. A lacuna entre esse slot e o primeiro slot que você vê após reconectar é exatamente a janela que você perdeu — nada mais, nada menos.
3

Preencha se Precisar

Se sua aplicação não tolerar a lacuna, preencha essa janela de slot a partir do RPC: getSignaturesForAddress para enumerar transações no intervalo, depois getTransaction para buscar cada uma. Este é um passo de reconciliação manual — o Streams Analisados em si não reproduz.
context.slot é o que sobrevive a uma reconexão: acompanhe o slot mais alto que você processou completamente antes da desconexão e trate tudo depois dele como a janela de preenchimento.

Lidando com Erros JSON-RPC

Pedidos que falham retornam um erro JSON-RPC em vez de um resultado, então você pode bifurcar em error.code: -32602 e -32000 significam que a solicitação em si está errada — corrija o filtro, não tente novamente como está. -32001 e -32002 são transitórios; tente novamente com o mesmo backoff que você usa para reconexões.

Próximos Passos

Início Rápido

Referência completa do protocolo: métodos, campos de filtro, limites.

Acompanhe Trocas de Júpiter

Construa um filtro ao qual essa conexão possa assinar.