我想在我的网络应用程序中使用'primefaces push'来接收通知。
我希望用户可以根据他所属的群组接收通知。每个用户都可以属于多个组,例如:
当用户登录Web应用程序时,该用户应订阅这些通知组。
我的问题是我必须为用户创建多少'套接字'。
<p:socket onMessage="handleMessage" channel="/groupX" />
例如,如果用户属于两个组,我应该在JSF页面中动态创建两个套接字吗?我可以创建一个套接字并使用它来接收来自不同组的通知吗?
由于
答案 0 :(得分:1)
假设它们不是彼此的子集,则不能使用一个通用套接字(一个通道)。根据登录用户的数量和/或组的数量和/或用户所属的组的数量,我可以看到另一种可能的解决方案(除了为您已经提到的每个组创建套接字)< / p>
为每个用户创建一个特定于用户的频道,并在服务器上维护一个HashMap,其中包含组名和属于该组的登录用户列表。当需要将消息发送到一个组时,迭代列表并将其发送给每个单独的用户