WebSockets: enfoque correcto para crear canales y enviar datos

Tengo una situación en la que quiero informar a los usuarios de mi sitio que alguien ha comentado un artículo en el que también ha comentado. ¡Esto se parece mucho a la manera en que SO me notifica cuando alguien responde a una pregunta!

Del lado del servidor, persisto el comentario y luego busco a todos los usuarios que comentaron sobre el mismo artículo. Luego emito (estoy usando Atmósfera):

PushContext pushContext = PushContextFactory.getDefault().getPushContext();

for(User u : users){       
    // channel name, message
    pushContext.push("/user_" + u.id, "someone commented! blah blah"); 
}

El "canal" al que estoy transmitiendo es el canal "propio" del usuario, ya que no quiero que se notifique a todos los usuarios. Yo uso la identificación del usuario en el nombre del canal para lograr esto.

¿Es esta la forma correcta de asegurarse de que solo los usuarios relevantes sean notificados?

Supongo que también quiero hacer dos cosas más:

Sólo empujar a los usuarios que creo que todavía están en línea. Si no están en línea, es un desperdicio de recursos empujarlos.Cifre el mensaje, porque de lo contrario, cualquiera podría escuchar mis mensajes, si conocen mi ID de usuario.

¿Hay algo más en lo que deba pensar?

Respuestas a la pregunta(1)

Su respuesta a la pregunta