Java Spring Boot:Stomp端点不接收SimpMessagingTemplate发送消息

Pau*_*aul 6 java spring stomp websocket

我无法使用SimpMessagingTemplate将消息示例发送到单元测试中以将消息发送到端点.

我按照这里的说明操作:https: //spring.io/guides/gs/messaging-stomp-websocket/

到目前为止我的Controller看起来像:

@Data @NoArgsConstructor @AllArgsConstructor
public static class Message {
    private Long id;
    private String value;
    private long time;
}

@MessageMapping("/message")
@SendTo("/topic/response")
public Message slowEndpont(Message message) throws Exception {
    Thread.sleep(3000); // simulated delay
    System.err.println("Message Received: " + message);
    return new Message(message.id, "Hello Client", System.currentTimeMillis());
}
Run Code Online (Sandbox Code Playgroud)

我的单元测试现在尝试发送消息:

@Autowired
SimpMessagingTemplate messageTemplate;

@Test
public void sendMessage() throws Exception {
    System.err.println("** Sending messages...");
    messageTemplate.convertAndSend("/app/message", 
            new MessageController.Message(1L, "Hello Server", System.currentTimeMillis()));

    messageTemplate.convertAndSend("/topic/message", 
            new MessageController.Message(1L, "Hello Server", System.currentTimeMillis()));

    messageTemplate.convertAndSend("/queue/message", 
            new MessageController.Message(1L, "Hello Server", System.currentTimeMillis()));

    messageTemplate.convertAndSend("/message", 
            new MessageController.Message(1L, "Hello Server", System.currentTimeMillis()));
    System.err.println("** Messages send!");
    Thread.sleep(1500);
}
Run Code Online (Sandbox Code Playgroud)

完整代码示例如下:https: //github.com/puel/training/tree/master/messaging

到现在为止还挺好.消息全部发送.但从未收到过.我追查它,MessageTemplate的注册表是空的.但为什么?

这个问题似乎也很接近: 通过ServletContextListener中的SimpMessagingTemplate向所有客户端发送消息

但是使用MessageSendingOperations也无济于事.

谢谢,

保罗