┌──────┐ ┌───────┐ ┌────┐ │Client│ │Serveur│ │Json│ └───┬──┘ └───┬───┘ └────┘ │ Ouvre une connexion WebSocket │ │ │────────────────────────────────────────>│ │ │ │ │ │ │────┐ │ │ │ │ Ouverture des events │ │ │<───┘ │ │ │ │ │ Confirmation de connexion │ │ │<────────────────────────────────────────│ │ │ │ │ ════════════════════════╪═════════════════════════════════════════╪═════════════════════════════════════════════╪════════ │ │ │ │ │ │ ╔═══════╤═════╪═════════════════════════════════════════╪══╗ │ ║ LOOP │ 60/sec │ ║ │ ╟───────┘ │ │ ║ │ ║ │────┐ │ ║ │ ║ │ │ Affiche les instances à │ ║ │ ║ │<───┘ chaque frame , │ ║ │ ║ │ simule les prochaines positions │ ║ │ ║ │ en attendant le serveur │ ║ │ ║ │ │ ║ │ ╚═════════════╪═════════════════════════════════════════╪══╝ │ │ │ │ │ │ │ ╔═══════╤═════╪═════════════════════════════════════════╪═════════════╗ │ ║ LOOP │ 10/sec │ ║ │ ╟───────┘ │ │ ║ │ ║ │ Envoie la map des touches pressées │ ║ │ ║ │────────────────────────────────────────>│ ║ │ ╚═════════════╪═════════════════════════════════════════╪═════════════╝ │ │ │ │ │ │ │ ╔═══════╤═════╪═════════════════════════════════════════╪═════════════════════════════════════════╗ │ ║ LOOP │ 30/sec │ ║ │ ╟───────┘ │ │ ║ │ ║ │ │────┐ ║ │ ║ │ │ │ Calcul des nouvelles positions ║ │ ║ │ │<───┘ ║ │ ║ │ │ ║ │ ║ │ Envoie la nouvelle liste des instances │ ║ │ ║ │<────────────────────────────────────────│ ║ │ ╚═════════════╪═════════════════════════════════════════╪═════════════════════════════════════════╝ │ │ │ │ ════════════════════════╪═════════════════════════════════════════╪═════════════════════════════════════════════╪════════ │ │ │ │ Demande à rejoindre la partie │ │ │────────────────────────────────────────>│ │ │ │ │ │ │────┐ │ │ │ │ Initialisation des instances de joueur │ │ │<───┘ │ │ │ │ │Envoie l'ID de l'instance du joueur créé │ │ │<────────────────────────────────────────│ │ │ │ │ ════════════════════════╪═════════════════════════════════════════╪═════════════════════════════════════════════╪════════ │ │ │ │ Demande à quitter la partie │ │ │────────────────────────────────────────>│ │ │ │ │ │ │ Sauvegarde des scores │ │ │────────────────────────────────────────────>│ │ │ │ │ │────┐ │ │ │ │ Destruction des instances de joueur │ │ │<───┘ │ │ │ │ │ Envoie les scores │ │ │<────────────────────────────────────────│ │ │ │ │ ════════════════════════╪═════════════════════════════════════════╪═════════════════════════════════════════════╪════════ │ │ │ │ │────┐ │ │ │ │ Le joueur perd │ │ │<───┘ │ │ │ │ │ │ Sauvegarde des scores │ │ │────────────────────────────────────────────>│ │ │ │ │ │────┐ │ │ │ │ Destruction des instances de joueur │ │ │<───┘ │ │ │ │ │ Envoie les scores │ │ │<────────────────────────────────────────│ │ │ │ │ ════════════════════════╪═════════════════════════════════════════╪═════════════════════════════════════════════╪════════ │ │ │ │ Demande à voir le classement │ │ │────────────────────────────────────────>│ │ │ │ │ │ │ Recupération des cores │ │ │────────────────────────────────────────────>│ │ │ │ │ │ │ │ │<────────────────────────────────────────────│ │ │ │ │ │────┐ │ │ │ │ Génére le html │ │ │<───┘ │ │ │ │ │ Envoi du html │ │ │<────────────────────────────────────────│ │ ┌───┴──┐ ┌───┴───┐ ┌────┐ │Client│ │Serveur│ │Json│ └──────┘ └───────┘ └────┘