Soluzioni un pò estrema....ma forse interessante per futuri sviluppi....
Mai sentito parlare di classi SINGLETON??
Ovvero sono classi che vengono generate una sola volta ( alla loro prima istanza, oppure con l'up del webServer ) e si mantengono thread safe.

Solitamente hanno un metodo getInstance()
codice:
public static synchronized MiaClasseSINGLETON getInstance(){
      if( !MiaClasseSINGLETON istanziata )
           istanzia_MiaClasseSINGLETON
      return MiaClasseSINGLETON;
}
Dentro questa classe salvi una lista di utenti connessi e la getisci come vuoi lato server...
Dato che è public static la puoi richiamare da qualsiasi altra classe che la includa tramite il metodo
codice:
MiaClasseSINGLETON var = MiaClasseSINGLETON.getInstance();
Dove MiaClasseSINGLETON deve esser proprio scritta con il nome della classe.

Mentre synchronized serve come multiThread safe, ovvero se più utenti richiedono contemporaneamente il metodo getInstance queste richieste vengono gestite in modo ordinato, così che se la classe non fosse istanziata venga instanziata alla prima richiesta.
Se non fosse presente synchronized potrebbe accadere che a fronte di più richieste contemporanee e che la classe non fosse istanziata che la classe venga istanziata più volte, non definendola più SINGLETON ( che pessimo modo di esprimermi ).

Spero di esser stato capito.