Sistema de notificação com p: poll / push

Eu tentei implementar o sistema básico de notificação para uma rede social básica comp:poll na camada de visão e um simplesNotificationService classe que recebe as novas notificações do banco de dados e atualiza a lista de notificações deNotificationBean qual é o viewscoped para cada usuário. Fluxo de processo semelhante a este:

-Poll calls NotificationBean.getNewNotifications for example every 15 sec.
--getNewNotifications calls NotificationService and DAO methods
---notificationList of user is refreshed
----DataTable on view layer shows new notifications

Mas a preocupação dep:poll é sobre seu desempenho porque envia uma consulta a cada expiração de intervalo.

PrimeFaces temPrimePush que, baseado no Atmosphere Framework, abre web-sockets e parece mais adequado para criar sistema de notificações.

Mas eu não sei quais componentes e quais propriedades deles devem ser usados. Temp:socket componente comchannel propriedade. Devo usar nomes de usuários comochannel valores? Abaixo do código vindo do showcase PrimeFaces e resume as últimas frases:

<p:socket onMessage="handleMessage" channel="/notifications" /> 

Tanto quanto eu entendi deeste exemplo de vitrine istop:socket ouvenotifications canal. E trecho de código empurrador é:

PushContext pushContext = PushContextFactory.getDefault().getPushContext();       
pushContext.push("/notifications", new FacesMessage(summary, detail));

Mas isso irá notificar todas as páginas do usuário, eu preciso de um empurrador que notifica usuário específico. Vamos dizer que existem 2 usuários e assumir que o Usuário1 adiciona o Usuário2 como um amigo. Deve haver sth. Curtiu isso:

pushContext.push("User2/notifications", new FacesMessage("friendship request", "from User1"));

Mas não tenho certeza se esse é o uso correto para esse tipo de requisito funcional ou não. Considerando a escalabilidade do aplicativo, pode haver um custo caro de abrir tantos canais por processo.

Obrigado por ajudar.

questionAnswers(1)

yourAnswerToTheQuestion