Como enviar e receber eventos personalizados

Product deprecation notice

Effective April 30th, 2026, Vonage In-App Messaging will no longer be available. Access for new users will be closed, and the service will be discontinued for all existing users.

If you have any questions regarding this product’s discontinuation, please contact your account manager or our support team.

Este guia explica como enviar e receber Eventos Personalizados com o Vonage Client SDK. Antes de começar, certifique-se de ter adicionado o Client SDK ao seu aplicativo e criado uma Sessão (Android, iOS, JS), e participou de uma conversa.

Eventos personalizados são eventos que contêm dados personalizados e são armazenados em uma conversa, ao contrário de Eventos efêmeros. Portanto, quando você receber um Eventos da Conversation eles serão exibidos. Você também pode filtrar por seu tipo de evento personalizado ao obter os eventos de uma conversa.

Os eventos personalizados são enviados a todos App Participantes de uma conversa. Eles são os mais indicados para implementar ações personalizadas na conversa, como uma enquete.

Envio de eventos personalizados

Com um ID de conversa, você pode enviar um evento personalizado. É necessário definir um tipo para o seu evento. O tipo deve:

  • começar com custom:
  • ter no máximo 100 caracteres
  • conter apenas caracteres alfanuméricos, :, -, e _ caracteres Por exemplo, uma enquete poderia utilizar os tipos custom:poll:question e custom:poll:response.

Os dados personalizados não devem exceder 4096 bytes. Recomenda-se que você use JSON para seus dados personalizados, mas é possível enviar qualquer tipo de dado aqui.

const customData = {
    key1: "value 1",
    key2: "value 2"
};

client.sendCustomEvent(conversationId, "custom:my-event", customData)
    .then(timestamp => {
        console.log("Successfully sent custom event at ", timestamp);
    }).catch(error => {
        console.error("Error sending custom event: ", error);
    });

Recebimento de eventos personalizados

Você pode receber todos os eventos de conversa em seu aplicativo configurando um ouvinte de eventos ou uma função delegada. Nesse ponto, é possível verificar o tipo do evento recebido. É possível realizar uma filtragem adicional do evento personalizado recebido no eventType.

client.on("conversationEvent", event => {
    switch (event.kind) {
        case "custom":
            handleCustomEvent(event); // event.eventType: custom event type
            break;
    };
});