Uso de más eventos con Client SDK

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.

En esta guía cubriremos la adición de más eventos de conversación; trataremos varios tipos de eventos, los que llegan a través de la conversación y los que enviamos a la conversación.

Concepts

Esta guía le introducirá en los siguientes conceptos.

  • Eventos de conversación - member:left y text: eventos que se disparan en una Conversación cuando alguien realiza una Acción
  • Acciones de conversación - acciones que desencadenan eventos en una Conversación
  • Historia de la conversación - un events objeto que almacena todos los Eventos de texto que ocurren en una conversación

NOTA: Hay disponible un tutorial paso a paso para crear una aplicación de chat aquí.

En getEvents recupera todos los eventos ocurridos en el contexto de la conversación. Devuelve un subconjunto o "página" de eventos con cada invocación - el número de eventos que devuelve se basa en el parámetro page_size (el valor por defecto es 10 resultados, el máximo es 100).

Nota: Ver el documentación para los métodos de ayuda que puede utilizar para trabajar con estos datos paginados.

conversation
  .getEvents({ page_size: 20 })
  .then((events_page) => {
    events_page.items.forEach((value, key) => {
      if (conversation.members.get(value.from)) {
        const date = new Date(Date.parse(value.timestamp))
        
        switch (value.type) {

          case 'member:joined':
            console.log(`${conversation.members.get(value.from).user.name} @ ${date}: joined the conversation`);
            break;
          case 'member:left':
            console.log(`${conversation.members.get(value.from).user.name} @ ${date}: left the conversation`);
            break;
          case 'member:invited':
            console.log(`${conversation.members.get(value.from).user.name} @ ${date}: invited to the conversation`);
            break;

          case 'text:seen':
            console.log(`${conversation.members.get(value.from).user.name} saw text at @ ${date} : ${value.body.text}`))
            break;
          case 'text:delivered':
            console.log(`Text from ${conversation.members.get(value.from).user.name} delivered at @ ${date} : ${value.body.text}`))
            break;
          case 'text':
            console.log(`${conversation.members.get(value.from).user.name} @ ${date}: ${value.body.text}`);
            break;

          case 'text:typing:on':
            console.log(`${conversation.members.get(value.from).user.name} starting typing @ ${date}`);
            break;
          case 'text:typing:off':
            console.log(`${conversation.members.get(value.from).user.name} stopped typing @ ${date}`);
            break;

          default:
            console.log(`${conversation.members.get(value.from).user.name} @ ${date}: unknown event`);
        }
      }
    })

  })
  .catch(this.errorLogger)

Referencia