Si estenda il server realizzato sino ad ora in modo da permettere la gestionee più di chat room. L'utente durante attraverso il comando GetIntoRoomCRC specifica la stanza in cui vuole entrare, a tal fine si aggiunga un opportuno campo al suo costruttore.
Un modo semplice per realizare questa parte è quella di sostituire la definizione del campo chatRoom di tipo ChatRoom nella classe CharRoomServer (si veda la Sezione 2.6.2) con un campo chatRoom di tipo ChatRoom[]. All'avvio il server crea un certo numero definito di chat alle quali gli utenti potranno collegarsi. Si può quindi sostituire il prototipo del metodo execCRC dell'interfaccia ChatRoomCommand con questo nuovo:
public Message execCRC(ChatRoom[] chatRoom, Object opt_param);e modificare di conseguenza le implementazioni del metodo execCRC neii vari comandi. Per esempio, la classe Send2AllCRC potrebbe essere modificata nel seguente modo:
public class Send2AllCRC implements ChatRoomCommand { private Message2All message; ... public Send2AllCRC(Message4All message) { this.message = message; } public ... get... public void set... public Message execCRC(ChatRoom[] chatRoom, Object opt_param) { Message answer = new Message(); answer.setFrom(chatRoom.chatRoomName()); try { // `i' e` inizializzato con la chat room a cui l'utente e` collegato chatRoom[i].send2All(message); answer.setMessageText(``Send2AllCRC done!''); } catch (ChatRoomException err) { answer.setMessageText(``Send2AllCRC failed: '' + err.getMessage()); } return answer; } }Ed in modo analogo tutti gli altri comandi. Per inizializzare la variabile `i' si può procedere in due modi: