Class WebSocketMateZone
java.lang.Object
org.java_websocket.WebSocketAdapter
org.java_websocket.AbstractWebSocket
org.java_websocket.server.WebSocketServer
server.Protocol.webSocket.WebSocketMateZone
- All Implemented Interfaces:
Runnable, org.java_websocket.WebSocketListener, IWebSocketMateZone
public class WebSocketMateZone
extends org.java_websocket.server.WebSocketServer
implements IWebSocketMateZone
Serveur WebSocket principal de l'application MateZone.
Cette classe étend WebSocketServer et implémente IWebSocketMateZone pour
gérer
la communication temps réel avec les clients connectés. Elle orchestre les
connexions,
traite les messages entrants selon le protocole défini et gère l'association
des clients aux canaux de chat.
Le serveur suit l'architecture hexagonale en implémentant l'interface métier
et en déléguant la logique business au ClientService.
- Version:
- V1
- Author:
- Prévost Donovan
-
Nested Class Summary
Nested classes/interfaces inherited from class org.java_websocket.server.WebSocketServer
org.java_websocket.server.WebSocketServer.WebSocketWorker -
Field Summary
Fields inherited from class org.java_websocket.server.WebSocketServer
decodersFields inherited from class org.java_websocket.AbstractWebSocket
DEFAULT_READ_BUFFER_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionWebSocketMateZone(int port, ClientService clientService) Constructeur du serveur WebSocket MateZone. -
Method Summary
Modifier and TypeMethodDescriptionvoidbroadcast(int idChannel, ChatEventDTO eventRec) Diffuse un événement de chat à tous les clients connectés sur un canal donné.voiddelClientChannel(org.java_websocket.WebSocket client) Supprime l'association d'un client avec son canal de chat.voidMéthode appelée lors de la fermeture d'une connexion WebSocket.voidMéthode appelée en cas d'erreur sur une connexion WebSocket.voidMéthode appelée lors de la réception d'un message WebSocket.voidonOpen(org.java_websocket.WebSocket client, org.java_websocket.handshake.ClientHandshake handshake) Méthode appelée lors de l'ouverture d'une nouvelle connexion WebSocket.voidonStart()Méthode appelée au démarrage du serveur WebSocket.voidsetClientChannel(org.java_websocket.WebSocket client, int idChannel) Associe un client WebSocket à un canal de chat spécifique.Methods inherited from class org.java_websocket.server.WebSocketServer
addConnection, allocateBuffers, broadcast, broadcast, broadcast, broadcast, broadcast, broadcast, createBuffer, getAddress, getConnections, getDraft, getLocalSocketAddress, getMaxPendingConnections, getPort, getRemoteSocketAddress, getWebSocketFactory, onCloseInitiated, onClosing, onConnect, onMessage, onWebsocketClose, onWebsocketCloseInitiated, onWebsocketClosing, onWebsocketError, onWebsocketMessage, onWebsocketMessage, onWebsocketOpen, onWriteDemand, queue, releaseBuffers, removeConnection, run, setDaemon, setMaxPendingConnections, setWebSocketFactory, start, stop, stop, stopMethods inherited from class org.java_websocket.AbstractWebSocket
getConnectionLostTimeout, getReceiveBufferSize, isDaemon, isReuseAddr, isTcpNoDelay, setConnectionLostTimeout, setReceiveBufferSize, setReuseAddr, setTcpNoDelay, startConnectionLostTimer, stopConnectionLostTimerMethods inherited from class org.java_websocket.WebSocketAdapter
onPreparePing, onWebsocketHandshakeReceivedAsClient, onWebsocketHandshakeReceivedAsServer, onWebsocketHandshakeSentAsClient, onWebsocketPing, onWebsocketPong
-
Constructor Details
-
WebSocketMateZone
Constructeur du serveur WebSocket MateZone. Initialise le serveur sur le port spécifié et configure le service client pour traiter la logique métier. Initialise également la map des canaux clients.- Parameters:
port- le port d'écoute du serveur WebSocketclientService- le service métier pour traiter les opérations client
-
-
Method Details
-
setClientChannel
public void setClientChannel(org.java_websocket.WebSocket client, int idChannel) Associe un client WebSocket à un canal de chat spécifique. Permet de suivre dans quel canal se trouve chaque client connecté.- Specified by:
setClientChannelin interfaceIWebSocketMateZone- Parameters:
client- la connexion WebSocket du clientidChannel- l'identifiant du canal de chat
-
delClientChannel
public void delClientChannel(org.java_websocket.WebSocket client) Supprime l'association d'un client avec son canal de chat. Utilisé lors de la déconnexion d'un client.- Parameters:
client- la connexion WebSocket du client à supprimer
-
broadcast
Diffuse un événement de chat à tous les clients connectés sur un canal donné. Parcourt tous les clients connectés et envoie le message uniquement à ceux présents dans le canal spécifié.- Specified by:
broadcastin interfaceIWebSocketMateZone- Parameters:
idChannel- l'identifiant du canal de diffusioneventRec- l'événement de chat à diffuser (contient le message et les métadonnées)
-
onOpen
public void onOpen(org.java_websocket.WebSocket client, org.java_websocket.handshake.ClientHandshake handshake) Méthode appelée lors de l'ouverture d'une nouvelle connexion WebSocket. Ajoute automatiquement le client au canal par défaut (canal 1) et affiche un message de confirmation de connexion.- Specified by:
onOpenin classorg.java_websocket.server.WebSocketServer- Parameters:
client- la nouvelle connexion WebSockethandshake- les informations de négociation WebSocket
-
onMessage
Méthode appelée lors de la réception d'un message WebSocket. Désérialise le message JSON en ChatEventDTO et dispatche le traitement vers le service client selon le type d'événement (LOGIN, SIGNUP, NEW_MESSAGE, NEW_CHANNEL).- Specified by:
onMessagein classorg.java_websocket.server.WebSocketServer- Parameters:
client- la connexion WebSocket ayant envoyé le messagemessage- le message JSON reçu
-
onClose
Méthode appelée lors de la fermeture d'une connexion WebSocket. Supprime le client de la map des canaux pour libérer les ressources et affiche un message de déconnexion.- Specified by:
onClosein classorg.java_websocket.server.WebSocketServer- Parameters:
client- la connexion WebSocket ferméecode- le code de fermeture de la connexionreason- la raison de la fermetureremote- indique si la fermeture est initiée par le client distant
-
onError
Méthode appelée en cas d'erreur sur une connexion WebSocket. Affiche le message d'erreur pour faciliter le debug.- Specified by:
onErrorin classorg.java_websocket.server.WebSocketServer- Parameters:
client- la connexion WebSocket en erreur (peut être null pour les erreurs serveur)ex- l'exception rencontrée
-
onStart
public void onStart()Méthode appelée au démarrage du serveur WebSocket. Affiche un message de confirmation indiquant que le serveur est opérationnel.- Specified by:
onStartin classorg.java_websocket.server.WebSocketServer
-