Kotlin

Enviar un mensaje

En el paso anterior aprendiste sobre conversaciones y eventos, enviar un mensaje crea un nuevo evento y lo envía a través del cliente.

Para enviar un mensaje, actualice el onClick en el Button en la vista:

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun ChatScreen() {
    ...
        Row(){
            TextField(
                value = text,
                onValueChange = { text = it },
                label = { Text("Message") }
            )
            Button(onClick = {
                runBlocking {
                    vm.sendMessage(text)
                }
            }) {
                Text("Send")
            }
        }
    ...

}

Esto llamará a sendMessage en el ChatViewModel. Siguiente añadir sendMessage a la ChatViewModel clase:

class ChatViewModel(application: Application) : AndroidViewModel(application = application) {
    ...
    suspend fun sendMessage(message: String){
        try {
            client.sendMessageTextEvent(conversationID, message)
        } catch (err:Error) {
            isError = true
            error = err.localizedMessage?.toString() ?: ""
        }
    }
}

Para enviar un SMS se llama sendMessageTextEvent en el cliente con el ID de la conversación y el mensaje. Si tiene éxito, ConversationEventListener será llamado. Esto añadirá el evento al archivo events que actualizará automáticamente la interfaz de usuario.

Construir y ejecutar

Cmd + R para construir y ejecutar de nuevo. Ya tienes una aplicación de chat en funcionamiento. Para chatear simultáneamente puedes ejecutar la aplicación en dos simuladores/dispositivos diferentes