Evolution API utiliza o socket.io para emitir eventos, aproveitando a tecnologia WebSocket. Isso torna o desenvolvimento de integrações mais eficiente e direto para os desenvolvedores. WebSocket fornece um canal de comunicação full-duplex sobre uma única conexão duradoura, permitindo o fluxo de dados em tempo real entre o cliente e o servidor.

Para ativar os websockets, defina a variável de ambiente WEBSOCKET_ENABLED como true. Veja mais em Variáveis de Ambiente

Conexão ao WebSocket

Para se conectar ao servidor WebSocket na Evolution API, você pode usar o seguinte formato de URL:

wss://api.seusite.com/nome_instancia

Substitua api.seusite.com pelo domínio real da sua API e nome_instancia pelo nome da sua instância específica.

Exemplo de Estabelecimento de Conexão WebSocket Aqui está um exemplo básico de como estabelecer uma conexão WebSocket usando JavaScript:

const socket = io('wss://api.seusite.com/nome_instancia', {
  transports: ['websocket']
});

socket.on('connect', () => {
  console.log('Conectado ao WebSocket da Evolution API');
});

// Escutando eventos
socket.on('nome_evento', (data) => {
  console.log('Evento recebido:', data);
});

// Lidando com desconexão
socket.on('disconnect', () => {
  console.log('Desconectado do WebSocket da Evolution API');
});

Neste exemplo, substitua nome_evento pelo evento específico que você deseja escutar.

Manipulando Eventos

Uma vez conectado, você pode escutar vários eventos emitidos pelo servidor. Cada evento pode carregar dados relevantes para o contexto do evento. Por exemplo, se estiver ouvindo atualizações de mensagens, você pode receber dados contendo o conteúdo da mensagem atualizada e metadados.

Enviando Mensagens

Você também pode enviar mensagens para o servidor usando o método emit:

socket.emit('send_message', { message: 'Olá, Mundo!' });
// Neste caso, send_message é o nome do evento, e o objeto { message: 'Olá, Mundo!' } é os dados sendo enviados.

Fechando a Conexão

Para fechar a conexão WebSocket, use o método disconnect:

socket.disconnect();

Lembre-se de manipular a conexão de forma responsável, desconectando quando sua aplicação ou componente for desmontado para evitar vazamentos de memória e garantir o uso eficiente de recursos.

Ao aproveitar os WebSockets, a Evolution API oferece uma maneira poderosa de interagir com o sistema em tempo real, proporcionando uma experiência contínua tanto para desenvolvedores quanto para usuários finais.