Cómo enviar y recibir 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.
Esta guía explica cómo enviar y recibir eventos personalizados con el Vonage Client SDK. Antes de comenzar, asegúrate de haber agregado el SDK a tu aplicación, creado una sesión (Android, iOS, JS), y se unió a una conversación.
Los Eventos personalizados son Eventos que tienen datos personalizados y se almacenan en una Conversación a diferencia de Eventos efímeros. Por lo tanto, cuando se obtiene un Eventos de Conversación serán devueltos. También puede filtrar por su tipo de Evento Personalizado cuando obtenga los Eventos de una Conversación.
Los eventos personalizados se envían a todos App Miembros de una conversación. Son los más adecuados para implementar acciones personalizadas en la conversación, como una encuesta.
Envío de eventos personalizados
Si dispones de un ID de conversación, puedes enviar un evento personalizado. Debes asignar un tipo a tu evento. El tipo debe:
- comenzar con
custom: - tener un total de 100 caracteres como máximo
- sólo contienen alfanuméricos,
:,-y_caracteres Por ejemplo, una encuesta podría utilizar los tiposcustom:poll:questionycustom:poll:response.
Los datos personalizados no deben superar los 4096 bytes. Se recomienda utilizar JSON para los datos personalizados, pero puede enviar cualquier cosa aquí.
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);
});
client.sendCustomEvent("CON_ID", "custom:myEvent","MY_CUSTOM_BODY") { error, timestamp ->
error?.takeIf { it is VGError }?.let {/* Handle Vonage Error */ } ?:
error?.let {/* Handle generic Error */ }
timestamp?.let { /* event sent at timestamp */ }
}
client.sendCustomEvent("CON_ID", eventType: "custom:myEvent", customData: "MY_CUSTOM_BODY") { error, timestamp in
...
}
Recepción de eventos personalizados
Puede recibir todos los Eventos de Conversación en su aplicación configurando una Función de Receptor/Delegado de Eventos. Aquí puede comprobar el tipo de Evento entrante. Se puede filtrar más el Evento Personalizado entrante en la función eventType.
client.on("conversationEvent", event => {
switch (event.kind) {
case "custom":
handleCustomEvent(event); // event.eventType: custom event type
break;
};
});
client.setOnConversationEventListener {
when(it) {
is CustomConversationEvent -> {}
}
}
func chatClient(_ client: VGChatClient, didReceiveConversationEvent event: VGConversationEvent) {
switch event.kind {
case .custom:
// Handle Custom Event
let customEvent = event as! VGCustomConversationEvent
let customEventType = customEvent.eventType
...
}
}