Skip to main content
O Baileys é um cliente WebSocket sem estado. Ele processa e emite eventos, mas não armazena nada entre reinicializações. Sua aplicação é responsável por construir e manter esse estado a partir dos eventos que o Baileys emite.

Por que você precisa de um store

  • Reentrega de mensagens — quando uma mensagem falha ao decifrar, o WhatsApp pede que o remetente reenvie. O Baileys chama getMessage para recuperar o texto plano.
  • Decifrar votos de enquete — votos chegam como eventos messages.update cifrados. Para agregar, você precisa da mensagem original da enquete.
  • Consultas de históricosock.fetchMessageHistory carrega mensagens antigas, entregues via messaging-history.set.

O store em memória

makeInMemoryStore foi removido no v7. Se você está atualizando do v6, precisa implementar seu próprio store.

Produção: store em banco de dados

SQLite (com better-sqlite3)

Redis

Consultando mensagens


Checklist

1

Implemente getMessage em SocketConfig

Sem isso, reentregas e decifragem de votos não funcionam.
2

Popule o store a partir de messages.upsert

Guarde o objeto WAMessage completo, não só o texto.
3

Trate messaging-history.set para inserts em lote

Use insert em lote para não martelar o banco.
4

Mantenha estado de chats e contatos atualizado

Escute chats.* e contacts.*.
5

Persista o estado de auth separadamente

Auth state e mensagens são coisas diferentes. Ambos precisam sobreviver a reinicializações.
Nunca guarde estado de autenticação na mesma tabela das mensagens. Auth state contém chaves Signal de longa duração — trate como uma chave SSH privada.