websocket 和 ActiveMQ

websocket and ActiveMQ

我有一个使用 JmsTemplate 发送消息的程序,如下所示

@Override
    public void send(SonusCDR cdr) {
        jmsTemplate.setPubSubDomain(true);
        jmsTemplate.convertAndSend("cdrserver/calls/" + cdr.getIncomingCallingNumber() , new BaseCDRMessage(cdr));
    }

在另一个网站上(在 tomcat 内托管)我正在尝试通过 STOMP 直接接收消息

@Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        config.enableStompBrokerRelay("/topic", "/queue")
                .setRelayHost("192.168.70.149")
                .setRelayPort(61613);
        config.setApplicationDestinationPrefixes("panel");

    }

现在,当我尝试从 HTML 连接到 /topic/cdrserver/calls/121 时,我确实收到了消息,但正文是空的

我认为问题是消息在发送到 ActiveMQ 之前没有序列化。克服这个问题的最佳方法是什么?

这是我为解决序列化问题所做的,但我不确定这是推荐的方法,可能从头开始序列化消息更好,但现在这是我的解决方案

@JmsListener(destination = "cdrserver/calls")
public void receiveMessage1(BaseCDRMessage cdrMessage) {
    cdrMonitorService.sendCDR(cdrMessage);
}


@Override
public void sendCDR(BaseCDRMessage cdrMessage) {
    messagingTemplate.convertAndSend("/topic/panel/calls/" + cdrMessage.getIncomingCallingNumber(),cdrMessage);
}