Como enviar e receber eventos de mensagem
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 de mensagem 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.
Envio de eventos de texto de mensagem
Com um ID de conversa, você pode enviar um evento de mensagem de texto.
client.sendMessageTextEvent(conversationId, "Hi Vonage!")
.then(timestamp => {
console.log("Successfully sent text message at ", timestamp);
}).catch(error => {
console.error("Error sending text message: ", error);
});
client.sendMessageTextEvent("CONV_ID", "Hello world!") { error, timestamp ->
error?.takeIf { it is VGError }?.let {/* Handle Vonage Error */ } ?:
error?.let {/* Handle generic Error */ }
timestamp?.let { /* Message sent at timestamp */ }
}
client.sendMessageTextEvent("CONV_ID", text: "Hello world!") { error, timestamp in
...
}
Envio de eventos de imagem de mensagem
Com um ID de conversa e uma URL de uma imagem, você pode enviar um evento de mensagem com imagem.
client.sendMessageImageEvent(conversationId, imageURL)
.then(timestamp => {
console.log("Successfully sent image message at ", timestamp);
}).catch(error => {
console.error("Error sending image message: ", error);
});
client.sendMessageImageEvent("CONV_ID", URL("MY_IMAGE_URL")) { error, timestamp ->
error?.takeIf { it is VGError }?.let {/* Handle Vonage Error */ } ?:
error?.let {/* Handle generic Error */ }
timestamp?.let { /* Message sent at timestamp */ }
}
client.sendMessageImageEvent("CONV_ID", imageUrl: "MY_IMAGE_URL") { error, timestamp in
...
}
Eventos personalizados de envio de mensagens
Além de um ID de conversa, você pode enviar uma carga totalmente personalizada como um Evento de Mensagem Personalizado. Isso é útil caso você queira um tipo de Evento de Mensagem específico para o seu aplicativo.
const attachmentPayload = {
key1: "value 1",
key2: "value 2"
};
client.sendMessageCustomEvent(conversationId, attachmentPayload)
.then(timestamp => {
console.log("Successfully sent custom message at ", timestamp);
}).catch(error => {
console.error("Error sending custom message: ", error);
});
client.sendMessageCustomEvent("CONV_ID", "MY_CUSTOM_DATA") { error, timestamp ->
error?.takeIf { it is VGError }?.let {/* Handle Vonage Error */ } ?:
error?.let {/* Handle generic Error */ }
timestamp?.let { /* Message sent at timestamp */ }
}
client.sendMessageCustomEvent("CONV_ID", customData: "MY_CUSTOM_DATA") { error, timestamp in
}
Eventos de recepção de mensagens
Você pode receber todos os eventos de mensagens de conversa em seu aplicativo configurando um ouvinte de eventos ou uma função delegada. Os eventos de mensagens recebidos por meio desse ouvinte ou dessa função delegada serão automaticamente atualizados no delivered estado. Aqui você pode verificar o tipo de evento de mensagem recebida.
client.on("conversationEvent", event => {
switch (event.kind) {
case "message:text":
handleTextMessage(event);
break;
case "message:image":
handleImageMessage(event);
break;
case "message:custom":
handleCustomMessage(event);
break;
};
});
client.setOnConversationEventListener {
when(it) {
is MessageCustomEvent -> {} // Handle Message Custom
is MessageImageEvent -> {} // Handle Message Image
is MessageTextEvent -> {} // Handle Message Text
}
}
func chatClient(_ client: VGChatClient, didReceiveConversationEvent event: VGConversationEvent) {
switch event.kind {
case .messageText:
// Handle Message Text
let messageTextEvent = event as! VGMessageTextEvent
case .messageImage:
// Handle Message Image
let messageImageEvent = event as! VGMessageImageEvent
case .messageCustom:
// Handle Message Custom
let messageCustomEvent = event as! VGMessageCustomEvent
...
}
}
Marcar eventos de mensagens como “vistos”
Depois de receber uma notificação de mensagem, você pode marcá-la como lida.
client.sendMessageSeenEvent(eventId, conversationId)
.then(timestamp => {
console.log("Successfully sent seen event at ", timestamp);
}).catch(error => {
console.error("Error sending seen event: ", error);
});
client.sendMessageSeenEvent("EVENT_ID", "CONV_ID") { error, timestamp ->
error?.takeIf { it is VGError }?.let {/* Handle Vonage Error */ } ?:
error?.let {/* Handle generic Error */ }
timestamp?.let { /* Message seen sent at timestamp */ }
}
client.sendMessageSeenEvent("EVENT_ID", "CONV_ID") { error, timestamp in
...
}