ChatClient
Avant de pouvoir démarrer un chat, le Client SDK doit s'authentifier auprès des serveurs de Vonage. Commencez par créer un nouveau fichier Kotlin ChatViewModel.kt.
Créer une nouvelle classe ChatViewModel:
class ChatViewModel(application: Application) : AndroidViewModel(application = application) {
private val aliceJwt = "ALICE_JWT"
private val bobJwt = "BOB_JWT"
var isLoggedIn by mutableStateOf(false)
var isError by mutableStateOf(false)
var error = ""
var events : SnapshotStateList<PersistentConversationEvent> = mutableStateListOf()
private var client = ChatClient(getApplication<Application>().applicationContext)
fun login(username: String) {
val jwt = if(username == "Alice") aliceJwt else bobJwt
client.createSession(jwt) { err, sessionId ->
when {
err != null -> {
isError = true
error = err.localizedMessage?.toString() ?: ""
}
else -> {
isLoggedIn = true
}
}
}
}
}
Cette classe créera une instance de ChatClient puis créez une session à l'aide d'un JWT. Remplacer ALICE_JWT et BOB_JWT avec les JWTs que vous avez créés précédemment.
Actions sur les boutons
Pour que les boutons de connexion fonctionnent, vous devez leur ajouter des actions qui exécuteront une fonction lorsqu'ils seront activés. Mettez à jour le code de la vue dans MainActivity.kt pour instancier un ChatViewModel et appeler son objet login fonction :
class MainActivity : ComponentActivity() {
private val chatState by viewModels<ChatViewModel>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
CompositionLocalProvider(LocalChatState provides chatState) {
LoginScreen()
}
}
}
}
val LocalChatState = compositionLocalOf<ChatViewModel> { error("Login State Context Not Found!") }
@Composable
fun LoginScreen() {
val vm = LocalChatState.current
Column(
modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Button(onClick = { vm.login("Alice") }) {
Text("Login as Alice")
}
Button(onClick = { vm.login("Bob") }) {
Text("Login as Bob")
}
}
}
Créer une application de chat Android
Créer une application Android qui permet aux utilisateurs de s'envoyer des messages en utilisant le Client SDK Android et Kotlin.