java - 每个用户的 Spring RabbitMQ 连接

标签 java spring spring-mvc rabbitmq spring-amqp

我有一个多用户 Spring Web 应用程序,其中我需要每个登录用户都能够在自己的rabbitmq vHost 上接收消息,这样其他用户就无法查看其他用户的消息。我目前在没有虚拟主机的情况下可以使用此功能,但每个用户都可以收到任何消息。据我了解,使用 vHost 是执行此操作的最简单方法(如果我错了,请纠正我)。

目前是这样设置的。

 <!-- Connection Factory -->
<bean id="rabbitConnFactory"
      class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory">
    <constructor-arg><value>localhost</value></constructor-arg>
    <property name="username" value="guest" />
    <property name="password" value="guest" />
    <property name="virtualHost" value="/" />
    <property name="port" value="5672" />
</bean>

这实际上有两个问题,因为在任何人登录之前在浏览器中启动应用程序时它就会连接。我正在尝试使用 vHost 解决方案实现动态连接,并且仅在该用户登录后进行连接。 到目前为止,我在谷歌上唯一能找到的就是使用 AbstractRoutingConnectionFactorySimpleRoutingConnectionFactory,但是我根本找不到如何在线使用它们的示例。

我非常感谢任何人可以提供的帮助,谢谢。

最佳答案

每个用户使用一个虚拟主机似乎有点过多;为什么不为每个用户创建一个队列/交换器?

关于java - 每个用户的 Spring RabbitMQ 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24050231/

相关文章:

java - Spring 数据休息 : Detected multiple association links with same relation type

spring - 无法让 WebApp 在 Eclipse 的 Tomcat 上初始化 [以前工作]

java - 如何通过 JavaFX 中的场景构建器将 style.css 添加到我的应用程序?

java - Spring 的 UriComponentsBuilder.queryParam 问题

java - spring 框架停留在调试日志级别

java - EXT JS 5/Spring MVC : How to bind ext js form to java object with spring mvc

Java Xerces java.lang.ArrayIndexOutOfBoundsException : 8192

java - REST服务和定时消息发送

java - 如何使用 IE (Internet Explorer 11) 更改默认下载目录

java - 为什么我找不到 SSL 握手的信任库?