Swift

Envoi d'un message

Dans l'étape précédente, vous avez appris ce que sont les conversations et les événements. L'envoi d'un message crée un nouvel événement et l'envoie par l'intermédiaire du client.

Pour envoyer un message, mettez à jour le Task dans le Button dans la vue :

struct ChatView: View {
    ...
    HStack {
        TextField("Message", text: $message)
        Button("Send") {
            Task {
                await chatViewModel.sendMessage(message)
                self.message = ""
            }
        }.buttonStyle(.bordered)
    }.padding(8)
}

Cela appellera un sendMessage sur la fonction ChatViewModel que vous allez créer ensuite, puis il définit message à une chaîne vide, ce qui effacera le texte saisi. Ajouter ensuite sendMessage à la ChatViewModel classe :

@MainActor
final class ChatViewModel: NSObject, ObservableObject {
    ...
    func sendMessage(_ message: String) async {
        _ = try? await client.sendMessageTextEvent(conversationID, text: message)
    }
}

Pour envoyer un message texte, vous appelez sendMessageTextEvent sur le client avec l'identifiant de la conversation et le message. En cas de succès, didReceiveConversationEvent sur le VGChatClientDelegate sera appelé. Cela ajoutera l'événement au fichier events qui mettra automatiquement à jour l'interface utilisateur.

Construire et faire fonctionner

Cmd + R pour la construire et l'exécuter à nouveau. Vous avez maintenant une application de chat qui fonctionne ! Pour discuter simultanément, vous pouvez exécuter l'application sur deux simulateurs/appareils différents :

Sent messages