From b8bc7158689df705a047ca13b8fe127e48e52b99 Mon Sep 17 00:00:00 2001 From: Xeon0X Date: Sat, 5 Apr 2025 00:14:18 +0200 Subject: [PATCH] feat: add public message --- .../clientserver/server/MessageProcessor.java | 18 ++++++++++++++++++ .../main/java/clientserver/server/Server.java | 5 +++++ 2 files changed, 23 insertions(+) diff --git a/app/src/main/java/clientserver/server/MessageProcessor.java b/app/src/main/java/clientserver/server/MessageProcessor.java index a61c416..a5f0179 100644 --- a/app/src/main/java/clientserver/server/MessageProcessor.java +++ b/app/src/main/java/clientserver/server/MessageProcessor.java @@ -42,6 +42,10 @@ public class MessageProcessor { case "/disconnect": handleDisconnect(); break; + default: + // Broadcast message to all clients + broadcastMessage(message); + break; } } @@ -95,6 +99,20 @@ public class MessageProcessor { ); } + private void broadcastMessage(String message) { + String formattedMessage = "> " + client.getPseudo() + ": " + message; + + for (ClientHandler handler : Server.getAllClientHandlers()) { + Client targetClient = handler.getClient(); + Server.sendMessage( + clientHandlerSocket, + formattedMessage, + targetClient.getAddress(), + targetClient.getPort() + ); + } + } + private void handleMsgCommand() { Server.sendMessage( clientHandlerSocket, diff --git a/app/src/main/java/clientserver/server/Server.java b/app/src/main/java/clientserver/server/Server.java index 22721ee..1e0c111 100644 --- a/app/src/main/java/clientserver/server/Server.java +++ b/app/src/main/java/clientserver/server/Server.java @@ -5,6 +5,7 @@ import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; +import java.util.Collection; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -179,6 +180,10 @@ public class Server { return mapPseudosConnectedClientsHandlers.get(pseudo); } + public static Collection getAllClientHandlers() { + return mapPseudosConnectedClientsHandlers.values(); + } + public void addConnectedClientHandler( String pseudo, ClientHandler clientHandler