0

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

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

谢谢

4

2 回答 2

2

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

于 2014-01-17T14:48:36.367 回答
0

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

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

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

从 JavaDoc 注释到 DefaultUserDestinationResolver.java:

当用户尝试订阅“/user/queue/position-updates”时,会删除“/user”前缀并添加一个唯一的后缀,从而导致后缀为“/queue/position-updates-useri9oqdfzo”之类的内容基于用户的会话,并确保它不会与任何其他尝试订阅“/user/queue/position-updates”的用户发生冲突。

当一条消息发送给一个目标为“/user/{username}/queue/position-updates”的用户时,“/user/{username}”前缀被删除并添加了后缀,结果类似于“ /queue/position-updates-useri9oqdfzo”。

于 2014-03-20T10:33:53.687 回答