配置spring-MVc-websocket消息spring-security



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

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

感谢

参考文档中对此进行了解释,请参阅关于用户目的地的部分以及这些幻灯片。

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

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

若您向特定用户发送消息,消息将被添加到一些队列中。出于这个原因,用户名被替换为webcocket会话id。

从JavaDoc注释到DefaultUserDestinationResolver.java:

当用户尝试订阅"/user/queue/position updates"时,删除了"/user"前缀并添加了唯一后缀,结果类似于"/queue/position-updates-user9oqdfzo",其中后缀基于用户的会话,并确保它不会与任何其他试图订阅的用户"/user/queue/position updates">

向用户发送消息时具有诸如"/user/{username}/队列/位置更新"之类的目的地,删除"/user/{username}"前缀并添加后缀,导致类似"/queue/position-updates-user9oqdfzo"的内容。

最新更新