Websocket 使用STOMP引用activemq

Websocket 使用STOMP引用activemq,websocket,apache-camel,activemq,stomp,Websocket,Apache Camel,Activemq,Stomp,我正在使用Stomp消息,并订阅了客户端/浏览器代码中的主题: stompClient.subscribe('/topic/informer', function(greeting){ showGreeting(JSON.parse(greeting.body).content); }); 我使用的是骆驼路由,它向activemq主题发送消息: 我试过两种方法: <to uri="activemq:topic:informer"/> 以及:

我正在使用Stomp消息,并订阅了客户端/浏览器代码中的主题:

stompClient.subscribe('/topic/informer', function(greeting){
                showGreeting(JSON.parse(greeting.body).content);
});
我使用的是骆驼路由,它向activemq主题发送消息:

我试过两种方法:

<to uri="activemq:topic:informer"/>

以及:


两者都只需在activemq中创建一个主题并将消息排队。他们永远无法联系到客户。对我来说,这意味着客户机中的/topic/informer与我可以在activemq控制台中看到的topic:informer是分开的。是否有人知道如何通过订阅activemq主题或更改骆驼路由以发送到订阅引用的主题来链接它们


提前非常感谢您提供的任何提示/建议

您的STOMP客户端在发送消息之前是否已连接并订阅?主题不是队列,如果在发送时没有订阅客户端,则它们不会保留已发送的消息。如果您的客户端在消息发送后连接,那么它将不会收到任何内容,除非它使用的是以前创建的持久主题订阅

除了@Tim问的问题之外,我还有几个问题

  • 您在客户端/浏览器代码中使用的是哪个STOMP客户端库?指定主题的方式有时会根据所使用的客户端库而改变。请检查客户文档

  • 从代理日志中,您可以看到订阅者订阅了哪个主题吗

  • 如果您可以看到ActiveMQ控制台,那么您是否可以看到是否有其他主题是使用“informer”一词创建的?如果是这样的话,你可以很容易地找出哪里出了问题


  • 在发送消息之前,客户端肯定已连接并订阅,但在连接或订阅客户端之前,会创建骆驼上下文。这会导致任何问题吗?客户端连接并订阅onload,在浏览器加载并向服务器发送消息之前,不会向客户端发送任何消息。是否可以共享完整的驼峰路由配置?您是否给出了正确的代理URI?在调查上述问题时,您运气好吗?
    <to uri="stomp:topic:informer"/>