Remplace le polling REST inefficace et les tentatives d'envoi de mouvements via REST par une communication WebSocket complète dans MultiplayerActivity. Modifications clés : - Ajout de la dépendance OkHttp pour le support WebSocket (action manuelle). - Utilisation de OkHttp pour établir et gérer la connexion WebSocket (, ). - Implémentation d'un () pour gérer les événements : - Envoi du message 'register' à l'ouverture (). - Réception et traitement des messages 'gameStateUpdate', 'error', 'info' (). - Gestion de la fermeture et des erreurs (, , ). - Mise à jour de l'interface utilisateur (, ) en temps réel basée sur les messages reçus (en utilisant ). - Modification de pour créer et envoyer les messages 'move' via WebSocket (). - Suppression complète du mécanisme de polling basé sur . - Gestion du cycle de vie de la connexion WebSocket dans , , . - Ajout de classes de données internes pour parser/créer les messages WebSocket JSON (, , , etc.).
37 lines
1.8 KiB
TOML
37 lines
1.8 KiB
TOML
[versions]
|
|
activityVersion = "26"
|
|
agp = "8.9.1"
|
|
androidxActivity = "1.9.0"
|
|
gson = "2.10.1"
|
|
junit = "4.13.2"
|
|
junitVersion = "1.1.5"
|
|
espressoCore = "3.5.1"
|
|
appcompat = "1.6.1"
|
|
loggingInterceptor = "4.9.3"
|
|
material = "1.10.0"
|
|
activity = "1.8.0"
|
|
constraintlayout = "2.1.4"
|
|
gridlayout = "1.0.0"
|
|
retrofit = "2.9.0"
|
|
|
|
[libraries]
|
|
activity-v190 = { module = "androidx.activity:activity", version.ref = "androidxActivity" }
|
|
activity-v26 = { module = "androidx.activity:activity", version.ref = "activityVersion" }
|
|
converter-gson = { module = "com.squareup.retrofit2:converter-gson", version.ref = "retrofit" }
|
|
gson = { module = "com.google.code.gson:gson", version.ref = "gson" }
|
|
junit = { group = "junit", name = "junit", version.ref = "junit" }
|
|
ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
|
|
espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
|
|
appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
|
|
logging-interceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "loggingInterceptor" }
|
|
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
|
|
activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
|
|
constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
|
|
gridlayout = { group = "androidx.gridlayout", name = "gridlayout", version.ref = "gridlayout" }
|
|
okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "loggingInterceptor" }
|
|
retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" }
|
|
|
|
[plugins]
|
|
android-application = { id = "com.android.application", version.ref = "agp" }
|
|
|