9

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

我知道,在类SimpMessageSendingOperationsconvertAndSend中有 2 种方法( , convertAndSendToUser)来发送消息 。

但是有什么办法可以给一组用户发送消息,而组外用户不能订阅消息呢?

非常感谢。

4

1 回答 1

9

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

  • 使用 for 循环向每个用户显式发送消息
  • 鉴于这些用户事先订阅了该主题,将消息发送到特定主题。

正如您所提到的,您不希望不属于该“组”的用户能够订阅该主题。实际上,这需要授权功能。

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

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

于 2014-04-15T19:40:14.330 回答