Eventos
WhatsmeowClient estende EventEmitter e emite eventos tipados. Os eventos do whatsmeow listados abaixo sao encaminhados.
observação
Muitos eventos upstream do whatsmeow ainda nao sao encaminhados — por exemplo, eventos de sincronizacao de app state (silenciar, fixar, arquivar), atualizacoes em tempo real de newsletters, mudancas de lista de bloqueio/privacidade, PairSuccess e UndecryptableMessage.
Uso
client.on("message", ({ info, message }) => { /* ... */ });
client.on("connected", ({ jid }) => { /* ... */ });
Eventos de Conexao
| Evento | Payload | Descricao |
|---|---|---|
connected | { jid: string } | Conexao com o WhatsApp estabelecida. Seguro para enviar mensagens. |
disconnected | {} | Conexao perdida. A reconexao automatica e feita internamente. |
logged_out | { reason: string } | Sessao revogada. E necessario parear novamente. |
stream_error | { code: string } | Erro de protocolo. Geralmente seguido por reconexao automatica. |
temporary_ban | { code: string, expire: string } | Banimento temporario do WhatsApp. |
stream_replaced | {} | Outro cliente conectou com a mesma sessao. O whatsmeow para e nao reconecta; rode um processo por store. |
client_outdated | {} | O WhatsApp rejeitou a versao do cliente (405). O whatsmeow nao reconecta; atualize o whatsmeow-node. |
connect_failure | { code: number, reason: string, message: string } | Conexao recusada por um motivo que o whatsmeow nao trata. Nao reconecta. |
keep_alive_timeout | { errorCount: number } | Pings de keep-alive falhando. A conexao pode estar degradada. |
keep_alive_restored | {} | Keep-alive recuperado. A conexao esta saudavel. |
Eventos de Mensagem
| Evento | Payload | Descricao |
|---|---|---|
message | { info: MessageInfo, message: Record<string, unknown> } | Nova mensagem recebida. |
message:receipt | { type: string, chat: string, sender: string, isGroup: boolean, ids: string[], timestamp: number } | Confirmacao de leitura/entrega. |
MessageInfo
interface MessageInfo {
id: string;
chat: string; // JID do chat
sender: string; // JID do remetente
isFromMe: boolean;
isGroup: boolean;
timestamp: number; // Timestamp Unix
pushName: string; // Nome de exibicao do remetente
}
Eventos de Presenca
| Evento | Payload | Descricao |
|---|---|---|
presence | { jid: string, presence: "available" | "unavailable", lastSeen?: number } | Status online/offline do contato. |
chat_presence | { chat: string, sender: string, state: "composing" | "paused", media: "audio" | "" } | Indicador de digitacao/gravacao. |
Eventos de Grupo
| Evento | Payload | Descricao |
|---|---|---|
group:info | GroupInfoEvent | Metadados do grupo alterados. |
group:joined | { jid: string, name: string } | Voce entrou em um grupo. |
GroupInfoEvent
interface GroupInfoEvent {
jid: string;
name?: string; // Novo nome do grupo
description?: string; // Nova descricao
announce?: boolean; // Modo de anuncio alterado
locked?: boolean; // Status de bloqueio alterado
ephemeral?: boolean; // Mensagens temporarias alteradas
join?: string[]; // JIDs que entraram
leave?: string[]; // JIDs que sairam
promote?: string[]; // JIDs promovidos a admin
demote?: string[]; // JIDs rebaixados de admin
}
Eventos de Midia
| Evento | Payload | Descricao |
|---|---|---|
picture | { jid: string, remove: boolean, pictureId?: string } | Foto de perfil/grupo alterada. |
Eventos de Chamada
| Evento | Payload | Descricao |
|---|---|---|
call:offer | { from: string, callId: string } | Chamada recebida. |
call:accept | { from: string, callId: string } | Chamada aceita. |
call:terminate | { from: string, callId: string, reason: string } | Chamada encerrada. |
Outros Eventos
| Evento | Payload | Descricao |
|---|---|---|
identity_change | { jid: string, timestamp: number } | Chave de identidade do contato alterada (recadastro). |
history_sync | { type, chunkOrder, progress, conversations: { id, name, unreadCount, messages }[] } | Fragmento de sincronizacao de historico. conversations[].messages usam o mesmo formato { info, message } dos eventos message. Sincronizacoes iniciais podem ser grandes. |
qr | { code: string } | QR code para pareamento. |
qr:timeout | null | Tempo de pareamento por QR expirou. |
qr:error | { event: string } | Erro no canal QR. |
log | { level: string, msg: string, [key: string]: unknown } | Saida de log do binario Go. Util para depuracao. |
error | Error | Erro interno. |
exit | { code: number | null } | O binario Go encerrou. |