WebSocket Pinnacle estável: preços stale e reconexão
Resposta: trate o socket como transporte pouco fiável. (1) Responda a cada ping com {"type":"pong"}. (2) Em close, backoff exponencial + jitter, reassine, limpe os maps no snapshot part === 1. (3) Acompanhe seq/ts e o último apply — se o silêncio ultrapassar o seu SLA, force a reconexão. (4) Honre os códigos (1001 deploy, 4008 slow consumer). Precisa de Builder (€99/mês). Exemplo Node: reconexão.
Stale-price detection (client-side)#
import time
LAST = {"ts": 0.0}
STALE_SEC = 15 # your SLA — not a vendor latency claim
def on_message(msg):
if msg["type"] in ("snapshot", "delta", "ping"):
LAST["ts"] = time.time()
def watchdog():
if time.time() - LAST["ts"] > STALE_SEC:
raise TimeoutError("no frames; reconnect")
Quiet markets are normal — gate the watchdog on whether events you care about are live.
Failure modes#
| Signal | Action |
|---|---|
No pong path | Socket dies ~60 s after missed ping |
4008 slow_consumer | Narrow filters or speed up handlers |
1001 server_shutdown | Backoff reconnect (deploy) |
| Snapshot without clear | Ghost markets from the previous session |
We do not publish latency versus named competitors. Measure tick → your handler yourself.
CTA#
Builder. 3-day trial; card required, charged after day 3 unless cancelled. Docs: WebSocket.
Perguntas frequentes#
Scraping de convidado chega?#
BAN e boards de convidado atrasados são falhas comuns. Uma chave self-serve com códigos de fecho documentados é o caminho suportado.
Garantem updates sub-segundo?#
Documentamos heartbeats e tipos de frame, não um RTT de marketing face a outros revendedores. Instrumente de ponta a ponta.
Conteúdo educativo para adultos?#
Sim (18+).
Conteúdo educativo para maiores de 18 anos. Sem palpites nem lucro garantido. No Brasil, aposte apenas em operadores autorizados pela SPA/MF.