feat: add public message

This commit is contained in:
2025-04-05 00:14:18 +02:00
parent 13800486ba
commit b8bc715868
2 changed files with 23 additions and 0 deletions

View File

@@ -42,6 +42,10 @@ public class MessageProcessor {
case "/disconnect": case "/disconnect":
handleDisconnect(); handleDisconnect();
break; 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() { private void handleMsgCommand() {
Server.sendMessage( Server.sendMessage(
clientHandlerSocket, clientHandlerSocket,

View File

@@ -5,6 +5,7 @@ import java.io.IOException;
import java.net.DatagramPacket; import java.net.DatagramPacket;
import java.net.DatagramSocket; import java.net.DatagramSocket;
import java.net.InetAddress; import java.net.InetAddress;
import java.util.Collection;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@@ -179,6 +180,10 @@ public class Server {
return mapPseudosConnectedClientsHandlers.get(pseudo); return mapPseudosConnectedClientsHandlers.get(pseudo);
} }
public static Collection<ClientHandler> getAllClientHandlers() {
return mapPseudosConnectedClientsHandlers.values();
}
public void addConnectedClientHandler( public void addConnectedClientHandler(
String pseudo, String pseudo,
ClientHandler clientHandler ClientHandler clientHandler