Pular para o conteúdo principal

Ciclo de Vida da Conexao

Fluxo

init() → connect() → "connected" event → operational → "disconnected" → auto-reconnect → "connected"

Inicializacao normal:

const { jid } = await client.init();  // Opens store, returns JID if already paired
if (!jid) {
await client.getQRChannel(); // Set up QR pairing (first time only)
}
await client.connect(); // Starts connection (returns immediately)
// Wait for "connected" event before sending messages

Eventos Principais

EventoSignificadoAcao
connectedConexao com o WhatsApp estabelecidaSeguro para enviar mensagens
disconnectedConexao perdidaReconexao automatica integrada, nenhuma acao necessaria
logged_outSessao revogada (usuario desvinculou o dispositivo)Necessario re-parear — apague o store e recomece
stream_errorErro de protocolo do WhatsAppGeralmente seguido de reconexao automatica
keep_alive_timeoutPings de keep-alive falhandoA conexao pode estar degradada
keep_alive_restoredKeep-alive recuperadoA conexao esta saudavel novamente

Padrao de Conexao Resiliente

import { createClient } from "@whatsmeow-node/whatsmeow-node";

const client = createClient({ store: "session.db" });

client.on("connected", ({ jid }) => {
console.log(`Connected as ${jid}`);
});

client.on("disconnected", () => {
console.log("Disconnected — waiting for auto-reconnect...");
});

client.on("logged_out", ({ reason }) => {
console.error(`Logged out: ${reason}. Must re-pair.`);
process.exit(1);
});

const { jid } = await client.init();
if (!jid) {
await client.getQRChannel();
client.on("qr", ({ code }) => {
// Render QR code for pairing
});
}
await client.connect();

A reconexao automatica esta sempre ativa — o whatsmeow gerencia a reconexao internamente. Voce so precisa tratar o evento logged_out (sessao revogada, necessario re-parear).