gpt4 book ai didi

java - Spring Websocket + SockJS 中 SimpleMessageBroker 的/topic 和/queue 之间的区别

转载 作者:IT老高 更新时间:2023-10-28 13:49:05 25 4
gpt4 key购买 nike

如果我使用“简单代理”,Spring Websocket + SockJS 的/topic、/queue 等有什么区别?例如。这里 Sending message to specific user on Spring Websocket据说:当您的客户端订阅以/user/开头的 channel 时,例如:/user/queue/reply,您的服务器实例将订阅名为 queue/reply-user[session id] 的队列

我想以某种清晰的方式理解这种转换背后的逻辑。

最佳答案

你应该看看this part of the reference documentation .简而言之,"/topic""/queue" 都是配置到同一个目的地的前缀。

在文档中,"/app" 是配置的“应用程序目标前缀” - 这意味着所有通过 "clientInboundChannel" 流入并匹配这些前缀的消息将映射到您的应用程序,例如使用 @MessageMapping 注释。

同样,"/topic""/queue" 都是配置为 STOMP 目标的前缀 - 意味着所有消息都通过 "clientInboundChannel"流入 并匹配这些前缀将被转发到 STOMP 代理。在您的情况下,这就是简单的代理实现。

所以从 Spring Websocket 的角度来看,"/queue""/topic" 的处理方式相同,并且是“典型的”STOMP 目的地——所有消息都匹配这些被转发到消息代理。现在,如果您使用的是完整的消息代理实现,那么这些目标可能具有不同的含义,并且消息代理的行为可能会有所不同。以下是 Apache Apollo 的一些示例和 RabbitMQ .

请注意,如果您愿意,可以更改这些前缀。但我建议您将这些保留为默认值,除非您真的知道自己在做什么。

关于java - Spring Websocket + SockJS 中 SimpleMessageBroker 的/topic 和/queue 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37853810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com