STOMP:调用用@MessageMapping 注释的方法不向订阅用户发送消息

STOMP: Calling a method annotated with @MessageMapping not sending message to subscribed users

遵循了有关 websockets 的教程 (https://www.baeldung.com/websockets-spring),这在我的计算机上本地有效。

我的问题是直接使用端点 (/send) 调用该方法不会向所有订阅用户发送消息,只有当 stompclient 直接与 @MessageMapping 对话时才会发送消息。

    @MessageMapping("/liveoffers")
    @SendTo("/topic/messages")
    public OutputMessage send(final Message message) throws Exception {
        final String time = new SimpleDateFormat("HH:mm").format(new Date());
        return new OutputMessage(message.getFrom(), message.getText(), time);
    }

    @GetMapping(value = "/send")
    @ResponseStatus(HttpStatus.OK)
    public void invokeSend() throws Exception {
        send(new Message("from", "text"));
    }

我是否可以用下面类似的方式调用@MessageMapping,但实际上它能正常工作?

您是否考虑过使用 SimpMessagingTemplate 发送消息而不是调用映射方法?

@Autowired
SimpMessagingTemplate template;

@GetMapping(value = "/send")
@ResponseStatus(HttpStatus.OK)
public void invokeSend() throws Exception {
    template.convertAndSend("/topic/messages", new Message("from", "text"));
}