sock.ev. Cada nome de evento mapeia para um payload específico definido em BaileysEventMap.
Escutando eventos
Usesock.ev.on para se inscrever e sock.ev.off para sair.
BaileysEventEmitter:
O padrão ev.process()
Para a maioria das aplicações, use sock.ev.process em vez de chamadas individuais a sock.ev.on. O callback recebe um mapa de todos os eventos que dispararam num único tick.
Referência de eventos
connection.update
Dispara sempre que o estado do WebSocket muda. Payload é Partial<ConnectionState>:
creds.update
Dispara sempre que suas credenciais mudam. Você deve persistir imediatamente.
messages.upsert
Evento principal para mensagens recebidas e enviadas.
type: 'notify'— mensagens em tempo real. Devem disparar notificações.type: 'append'— mensagens de histórico/backfill. Não notifique.
messages.update
Status de mensagens — recibos, reações, votos de enquete.
messaging-history.set
Lote de sincronização de histórico do celular.
O histórico é entregue em pedaços em ordem cronológica reversa.
isLatest no último pedaço indica que terminou.chats.upsert / chats.update / chats.delete
contacts.upsert / contacts.update
groups.upsert / groups.update / group-participants.update
presence.update
call
Sequência de eventos na primeira conexão
1
connection.update — connecting
O socket inicia o handshake.
connection é 'connecting'.2
connection.update — QR ou open
Se faltam credenciais,
qr é populado. Após confirmação, connection vira 'open'.3
messaging-history.set (lotes)
Se
syncFullHistory for true, o celular envia mensagens passadas em pedaços.4
connection.update — receivedPendingNotifications
Após o histórico,
receivedPendingNotifications vira true.5
Eventos em tempo real
Daqui pra frente, eventos disparam em tempo real.