Spring / Stomp / RabbitMQ - convertAndSendToUser()问题

时间:2018-01-25 16:17:23

标签: java spring rabbitmq stomp

我开发了一个服务器& Spring中的客户端通过STOMP使用Web套接字,所有这些都可以使用SimpleBroker完美运行:

@Override
public void configureMessageBroker( MessageBrokerRegistry pConfig ) 
{
    pConfig.enableSimpleBroker( "/queue", "/topic" );        

我现在正在尝试切换使用RabbitMQ作为消息代理:

@Override
public void configureMessageBroker( MessageBrokerRegistry pConfig ) 
{
    pConfig.enableStompBrokerRelay( "/queue", "/topic" );        

我已经在POM中添加了相应的依赖项,按照其网站上的说明安装了RabbitMQ。应用程序似乎运行正常。

但是,只要服务器直接向特定用户发送消息:

@Autowired
private SimpMessagingTemplate   theTemplate; 

theTemplate.convertAndSendToUser( pHeaderAccessor.getUser().getName(), "/queue/device", lResponse );

我在日志中看到以下输出:

25-01-2018 15:52:19.782 | ERROR      | reactor-tcp-io-1               | aging.simp.stomp.StompBrokerRelayMessageHandler$StompConnectionHandler | 652   | Received ERROR {message=[Invalid destination], content-type=[text/plain], version=[1.0,1.1,1.2], content-length=[62]} session=_system_ text/plain payload='/**USERNAME**/queue/device' is not a valid exchange destination

从阅读RabbitMQ / STOMP页面,我可以看到有限数目的目的地类型,其中'/ user'不是其中之一,我猜这是错误产生的原因。

现在我正在使用RabbitMQ向用户发送消息的正确方法是什么?

感谢。

0 个答案:

没有答案