implement all TODO taks
This commit is contained in:
@@ -39,20 +39,29 @@ public class ChatServer {
|
||||
}
|
||||
|
||||
public void broadcast(String message, ClientHandler sender) {
|
||||
// step 1: iterate through connectedClients safely
|
||||
// step 2: skip the sender client
|
||||
// step 3: send message to remaining clients using sendMessage
|
||||
|
||||
synchronized (connectedClients) {
|
||||
for (ClientHandler client : connectedClients) {
|
||||
if (client != sender) {
|
||||
client.sendMessage(message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void broadcastSystemMessage(String message) {
|
||||
// step 1: iterate through all connected clients
|
||||
// step 2: send system message to each client
|
||||
|
||||
synchronized (connectedClients) {
|
||||
for (ClientHandler client : connectedClients) {
|
||||
client.sendMessage(message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void removeClient(ClientHandler clientHandler) {
|
||||
// step 1: remove client from connectedClients set
|
||||
// step 2: retrieve username from clientHandler
|
||||
// step 3: broadcast system message about user leaving
|
||||
|
||||
connectedClients.remove(clientHandler);
|
||||
broadcastSystemMessage("[System] " + clientHandler.getUsername() + " left the chat.");
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
Reference in New Issue
Block a user