WebSocket sur Kotlin : applications temps réel de A à Z

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

WebSocket sur Kotlin : création d'applications temps réel de zéro



Les applications web modernes exigent de plus en plus souvent un transfert instantané de données entre le client et le serveur. Le HTTP traditionnel, fonctionnant selon le principe « requête-réponse », ne convient pas pour les tâches nécessitant une communication bidirectionnelle constante — chats, jeux en ligne, cotations boursières ou notifications en temps réel. C'est ici que le protocole WebSocket vient à la rescousse. Dans cet article, nous allons voir comment créer des applications temps réel avec Kotlin en utilisant WebSocket, de la théorie de base aux exemples pratiques.



Kotlin, grâce à sa concision, sa sécurité et sa compatibilité totale avec l'écosystème Java, est un excellent choix pour le développement côté serveur. Comme framework principal, nous utiliserons Ktor — un framework asynchrone moderne pour Kotlin qui prend en charge nativement WebSocket.



Qu'est-ce que WebSocket et pourquoi en a-t-on besoin ?



WebSocket est un protocole assurant une communication full-duplex (bidirectionnelle) entre le client et le serveur via une seule connexion TCP persistante. Contrairement à HTTP, où le client est toujours l'initiateur de la requête, WebSocket permet au serveur d'envoyer des données au client à tout moment.



Principaux avantages de WebSocket :

  • Faible latence : Pas de frais généraux pour établir une nouvelle connexion pour chaque message.
  • Efficacité : Trafic de service minimal (seulement 2 octets par message après l'établissement de la connexion).
  • Connexion persistante : Le serveur peut envoyer des données en temps réel sans interrogation de la part du client.


WebSocket est idéal pour :

  • Chats en ligne et messageries instantanées
  • Édition collaborative de documents
  • Cotations boursières et financières
  • Jeux multijoueurs
  • Notifications push et surveillance


Configuration d'un projet Ktor pour WebSocket



Avant d'écrire du code, il est nécessaire de configurer le projet. Le plus simple est de le faire via IntelliJ IDEA avec le plugin Ktor, ou manuellement via Gradle.



Étape 1 : Création du projet

Créez un nouveau projet Gradle avec Kotlin (JVM). Dans le fichier build.gradle.kts, ajoutez les dépendances suivantes :



plugins {    kotlin("jvm") version "1.9.22"    id("io.ktor.plugin") version "2.3.7"}

application { mainClass.set("ApplicationKt")}

dependencies { implementation("io.ktor:ktor-server-core:2.3.7") implementation("io.ktor:ktor-server-netty:2.3.7") implementation("io.ktor:ktor-server-websockets:2.3.7") implementation("ch.qos.logback:logback-classic:1.4.14")}


Étape 2 : Structure de base du serveur

Créons le fichier Application.kt et écrivons un serveur WebSocket minimal :



import io.ktor.server.engine.*import io.ktor.server.netty.*import io.ktor.server.websocket.*import io.ktor.websocket.*import kotlinx.coroutines.delay

fun main() { embeddedServer(Netty, port = 8080) { install(WebSockets) webSocket("/chat") { send("Bienvenue dans le chat !") for (frame in incoming) { if (frame is Frame.Text) { val text = frame.readText() send("Vous avez écrit : $text") println("Reçu : $text") } } } }.start(wait = true)}


Ce code démarre un serveur sur le port 8080, qui accepte les connexions WebSocket à l'adresse /chat. Lors de la connexion, le client reçoit un message de bienvenue, puis le serveur répond à chaque message texte par un écho.



Création d'un chat avancé avec salles



Passons maintenant à un exemple plus complexe — multi

Blogs

Book Recommendations