Swift

Enviando uma mensagem

Na etapa anterior, você aprendeu sobre conversas e eventos; ao enviar uma mensagem, cria-se um novo evento e ele é enviado pelo cliente.

Para enviar uma mensagem, atualize o Task no Button na visualização:

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

Isso chamará um sendMessage função no ChatViewModel que você criará em seguida, então ele define message para uma string vazia, o que apagará o texto digitado. Em seguida, adicione sendMessage para o ChatViewModel classe:

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

Para enviar uma mensagem de texto, você liga para sendMessageTextEvent no cliente com o ID da conversa e a mensagem. Se for bem-sucedido, didReceiveConversationEvent no VGChatClientDelegate será chamado. Isso anexará o evento ao events matriz que atualizará automaticamente a interface do usuário.

Compilar e executar

Cmd + R para compilar e executar novamente. Agora você tem um aplicativo de bate-papo em funcionamento! Para conversar simultaneamente, você pode executar o aplicativo em dois simuladores/dispositivos diferentes:

Sent messages