Swift

Eventos de chat

Anteriormente creaste una conversación en la CLI de Vonage y agregaste los dos usuarios a esa conversación. Las conversaciones son la forma en que se comunicarán los usuarios. Puedes obtener más información sobre las conversaciones en la sección Documentación de la Conversation API. Eventos de chat, o VGConversationEvent se envían utilizando la conversación que has creado, por lo que para obtener el evento de chat primero tendrás que unirte a la conversación. Para implementar esto, actualiza la directiva ChatViewModel clase.

Añada el getMemberIDIfNeeded función:

Esto comprobará si el memberIDque se genera cuando te unes a una conversación. Si no es así, llama a getMemberID. Cree getMemberID:

Esta función intenta obtener primero el ID de miembro de este usuario con getConversationMembersi falla, se unirá a la conversación con joinConversation que devuelve el ID del miembro.

Ahora que está garantizado que ese usuario es miembro de la conversación, puedes obtener los eventos de la conversación utilizando el cliente. Crea una función llamada getConversationEvents:

getConversationEvents toma un ID de conversación y VGGetConversationEventsParameters. Los parámetros le permiten personalizar la forma en que se le devuelven los eventos. Esta función devuelve una respuesta paginada. Para obtener más información sobre la paginación, puede leer el documento guía de paginación. Para mostrar los eventos, cree una función de ayuda que convierta los objetos de evento en una cadena de visualización:

Los tres eventos que se utilizan en este tutorial son memberJoined, memberLefty messageText. En el caso de messageText la función utiliza el memberID para determinar si el mensaje fue enviado por el usuario actual. Esto permitirá a la interfaz de usuario fijar los mensajes enviados por los usuarios a la derecha y los mensajes recibidos a la izquierda.

En VGChatClientDelegate

La aplicación también necesita reaccionar a eventos en una conversación después de cargar inicialmente por lo que necesita implementar la función VGChatClientDelegate didReceiveConversationEvent evento.

Cuando se recibe un nuevo evento, éste se añade al archivo events que se publica automáticamente para que la interfaz de usuario se actualice.

Actualizar la interfaz de usuario

Ahora que el ChatViewModel puede recuperar y escuchar nuevos eventos de conversación, actualizar el código de la vista para mostrarlos:

Ahora en el Listse ha actualizado la sentencia switch para llamar a generateDisplayText para los tres tipos diferentes de eventos de conversación que utiliza el tutorial. También hay un ProgressView para cuando el ChatViewModel se está cargando. Cuando se carga la vista, onAppear que llama a las funciones creadas en el archivo ChatViewModel.

Construir y ejecutar

Pulse Cmd + R para construir y ejecutar de nuevo. Después de iniciar sesión verás que Alice se ha unido a la conversación:

Chat interface with connection events