【问题标题】:configuration spring MVc websocket messaging spring security配置spring MVc websocket消息传递spring security
【发布时间】:2014-03-20 18:33:53
【问题描述】:

我将教程http://assets.spring.io/wp/WebSocketBlogPost.html 定制到我的应用程序中。当使用 SimpMessageSendingOperations.convertAndSendToUser("fabrice","/stayawakews2/shakebaby", "mano") 从应用程序向服务器发送消息时,日志显示:

/stayawakews2/shakebaby*-userltmei5cm* 。我不知道为什么要添加值 -userltmei5cm 。

谢谢

【问题讨论】:

  • 您能告诉我们产生该日志消息的代码吗?

标签: spring-mvc websocket spring-messaging


【解决方案1】:

这在参考文档中进行了解释,请参阅 section on user destinationsthese slides

【讨论】:

  • 谢谢两位,将首先使用注释升级 Spring Security。感谢幻灯片。
  • 它现在可以工作,但日志消息可能会令人困惑:将消息发送到已解析的目标 =/queue/position-updates-usersr6chstw,我的意思是 usersr6chstw 部分,因为它不是用户名
【解决方案2】:

ltmei5cm - 这是一个 websocket 会话 ID。该值在客户端生成。

一个登录用户可以有一些 websocket 会话。 为每个 webscocket 连接(会话)spring 创建单独的队列。

如果您向特定用户发送消息,消息将被添加到某些队列中。 因此,用户名将替换为 webcoket 会话 ID。

从 JavaDoc 注释到 DefaultUserDestinationResolver.java:

当用户尝试订阅“/user/queue/position-updates”时, “/user”前缀被删除并添加了一个唯一的后缀,导致 后缀为“/queue/position-updates-useri9oqdfzo”之类的东西 基于用户的会话并确保它不会与 任何其他尝试订阅的用户 “/用户/队列/位置更新”。

当消息发送给用户时 具有诸如“/user/{username}/queue/position-updates”之类的目的地, “/user/{username}”前缀被移除并添加了后缀, 导致类似“/queue/position-updates-useri9oqdfzo”的东西。

【讨论】:

    猜你喜欢
    • 2011-01-08
    • 1970-01-01
    • 2017-01-27
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    相关资源
    最近更新 更多