我有一个聊天应用程序,它会为每个在线的用户创建一个队列,我正在尝试获取该用户的所有排队消息,问题是我只能通过消息来知道队列的名称,因此我不能使用@rabbitlistener给它一个队列名称。除了使用rabbitmplateconvert之外,有没有其他方法可以让所有的消息排队等待一个用户?因为它只给我一条信息而不是所有的
6vl6ewon1#
我想说的是,最好研究一下websocket上的stomp协议,它作为rabbitmq上的插件而受到支持。它确实为每个用户创建了一个单独的队列,并且有一种机制来使用发送给该用户的所有消息。请参见spring框架中的websocket支持:https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#websocket如果您不能做到这一点,那么您可能应该研究一个定制的解决方案,在该解决方案中,您将队列名称发送到某个静态交换,以便使用者知道这样一个新的队列,您可以将它添加到 ListenerContainer 在运行时(稍后分别删除)。在spring amqp中查看更多信息:https://docs.spring.io/spring-amqp/docs/current/reference/html/#listener-队列
ListenerContainer
1条答案
按热度按时间6vl6ewon1#
我想说的是,最好研究一下websocket上的stomp协议,它作为rabbitmq上的插件而受到支持。它确实为每个用户创建了一个单独的队列,并且有一种机制来使用发送给该用户的所有消息。
请参见spring框架中的websocket支持:https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#websocket
如果您不能做到这一点,那么您可能应该研究一个定制的解决方案,在该解决方案中,您将队列名称发送到某个静态交换,以便使用者知道这样一个新的队列,您可以将它添加到
ListenerContainer
在运行时(稍后分别删除)。在spring amqp中查看更多信息:https://docs.spring.io/spring-amqp/docs/current/reference/html/#listener-队列