Class WebSocketChatAdapter

java.lang.Object
org.java_websocket.WebSocketAdapter
org.java_websocket.AbstractWebSocket
org.java_websocket.client.WebSocketClient
client.infrastructure.websocket.WebSocketChatAdapter
All Implemented Interfaces:
IEnvoyeur, Runnable, org.java_websocket.WebSocket, org.java_websocket.WebSocketListener

public class WebSocketChatAdapter extends org.java_websocket.client.WebSocketClient implements IEnvoyeur
Adaptateur WebSocket pour la communication avec le serveur de chat MateZone. Cette classe étend WebSocketClient et implémente IEnvoyeur pour gérer la connexion, l'envoi et la réception des messages via WebSocket. Elle fait le pont entre la couche métier et la communication réseau en utilisant le protocole WebSocket. Les messages sont sérialisés/désérialisés en JSON via Gson.
Version:
V1
Author:
Joshua Hermilly
  • Field Summary

    Fields inherited from class org.java_websocket.client.WebSocketClient

    uri

    Fields inherited from class org.java_websocket.AbstractWebSocket

    DEFAULT_READ_BUFFER_SIZE
  • Constructor Summary

    Constructors
    Constructor
    Description
    WebSocketChatAdapter(String serverUri, INotifieur iNotifieur)
    Constructeur de l'adaptateur WebSocket.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Établit une connexion WebSocket avec le serveur.
    void
    Envoie un événement de chat au serveur via WebSocket.
    void
    onClose(int code, String reason, boolean remote)
    Callback appelé lors de la fermeture de la connexion WebSocket.
    void
    Callback appelé en cas d'erreur dans la connexion WebSocket.
    void
    onMessage(String message)
    Callback appelé lors de la réception d'un message du serveur.
    void
    onOpen(org.java_websocket.handshake.ServerHandshake handshakedata)
    Callback appelé lors de l'ouverture réussie de la connexion WebSocket.

    Methods inherited from class org.java_websocket.client.WebSocketClient

    addHeader, clearHeaders, close, close, close, closeBlocking, closeConnection, connect, connectBlocking, connectBlocking, getAttachment, getConnection, getConnections, getDraft, getLocalSocketAddress, getLocalSocketAddress, getProtocol, getReadyState, getRemoteSocketAddress, getRemoteSocketAddress, getResourceDescriptor, getSocket, getSSLSession, getURI, hasBufferedData, hasSSLSupport, isClosed, isClosing, isFlushAndClose, isOpen, onCloseInitiated, onClosing, onMessage, onSetSSLParameters, onWebsocketClose, onWebsocketCloseInitiated, onWebsocketClosing, onWebsocketError, onWebsocketMessage, onWebsocketMessage, onWebsocketOpen, onWriteDemand, reconnect, reconnectBlocking, removeHeader, run, send, send, send, sendFragmentedFrame, sendFrame, sendFrame, sendPing, setAttachment, setDnsResolver, setProxy, setSocket, setSocketFactory

    Methods inherited from class org.java_websocket.AbstractWebSocket

    getConnectionLostTimeout, getReceiveBufferSize, isDaemon, isReuseAddr, isTcpNoDelay, setConnectionLostTimeout, setDaemon, setReceiveBufferSize, setReuseAddr, setTcpNoDelay, startConnectionLostTimer, stopConnectionLostTimer

    Methods inherited from class org.java_websocket.WebSocketAdapter

    onPreparePing, onWebsocketHandshakeReceivedAsClient, onWebsocketHandshakeReceivedAsServer, onWebsocketHandshakeSentAsClient, onWebsocketPing, onWebsocketPong

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • WebSocketChatAdapter

      public WebSocketChatAdapter(String serverUri, INotifieur iNotifieur) throws Exception
      Constructeur de l'adaptateur WebSocket. Initialise la connexion WebSocket vers le serveur et configure le notifieur pour la gestion des messages entrants.
      Parameters:
      serverUri - l'URI du serveur WebSocket (ex: "ws://localhost:8080")
      iNotifieur - l'interface de notification pour transmettre les messages reçus
      Throws:
      Exception - si l'URI du serveur est invalide ou si l'initialisation échoue
  • Method Details

    • envoyer

      public void envoyer(ChatEventDTO event)
      Envoie un événement de chat au serveur via WebSocket. Vérifie d'abord que la connexion est ouverte, sérialise l'événement en JSON et l'envoie au serveur. Affiche une erreur si la connexion n'est pas disponible.
      Specified by:
      envoyer in interface IEnvoyeur
      Parameters:
      event - l'événement de chat à envoyer au serveur
    • connecter

      public void connecter() throws InterruptedException
      Établit une connexion WebSocket avec le serveur. Utilise une connexion bloquante qui attend la confirmation de connexion avant de continuer. Ne tente la connexion que si elle n'est pas déjà ouverte.
      Specified by:
      connecter in interface IEnvoyeur
      Throws:
      InterruptedException - si la connexion est interrompue pendant l'attente
    • onOpen

      public void onOpen(org.java_websocket.handshake.ServerHandshake handshakedata)
      Callback appelé lors de l'ouverture réussie de la connexion WebSocket. Affiche un message de confirmation de connexion dans la console.
      Specified by:
      onOpen in class org.java_websocket.client.WebSocketClient
      Parameters:
      handshakedata - les données de handshake fournies par le serveur
    • onMessage

      public void onMessage(String message)
      Callback appelé lors de la réception d'un message du serveur. Désérialise le message JSON reçu en ChatEventDTO et le transmet au notifieur pour traitement par la couche métier.
      Specified by:
      onMessage in class org.java_websocket.client.WebSocketClient
      Parameters:
      message - le message JSON reçu du serveur
    • onClose

      public void onClose(int code, String reason, boolean remote)
      Callback appelé lors de la fermeture de la connexion WebSocket. Affiche la raison de la déconnexion dans la console.
      Specified by:
      onClose in class org.java_websocket.client.WebSocketClient
      Parameters:
      code - le code de fermeture WebSocket
      reason - la raison de la fermeture fournie par le serveur
      remote - indique si la fermeture a été initiée par le serveur distant
    • onError

      public void onError(Exception ex)
      Callback appelé en cas d'erreur dans la connexion WebSocket. Affiche la trace complète de l'exception dans la console pour le débogage.
      Specified by:
      onError in class org.java_websocket.client.WebSocketClient
      Parameters:
      ex - l'exception qui a provoqué l'erreur