是否有任何解决方案可以使用spring4 websocket向一组用户(不是所有用户)发送消息?

Xiu*_* Ma 8 java spring websocket spring-websocket

最近,我使用spring4 websocket将消息推送给最终用户.

我知道,有两种方法(convertAndSend,convertAndSendToUser)在类SimpMessageSendingOperations中发送消息 .

但是有没有办法向一组用户发送消息,而组外的用户无法订阅消息?

非常感谢你.

Bri*_*zel 7

从Spring Framework 4.0.x开始,可以通过以下方式向一组用户发送消息:

  • 使用for循环向每个用户显式发送消息
  • 在给定预先订阅该主题的用户的情况下,将消息发送到特定主题.

如您所述,您不希望不属于该"组"的用户能够订阅此主题.实际上,这称为授权功能.

使用4.0.x,安全功能在HTTP级别实现,例如在HTTP升级阶段,在客户端切换到websocket之前(请参阅websocket-portfolio应用程序).

您要求的功能是在Spring Security 4.0.0中实现的(要发布,请参阅此博客文章以获得完整预览).