Когда вы вызываете другой метод из того же класса, вы просто делаете это: вызываете метод.Этот вызов метода не заботится о том, есть ли у вызываемого метода аннотации.
Метод приветствия () отправляет сообщение только при вызове от клиента websocket, отправляющего сообщение на /hello
.
Чтобы отправить сообщение программным способом, вы используете SimpMessageTemplate, как задокументировано :
Что если вы хотите отправлять сообщения подключенным клиентам из какой-либо части приложения?Любой компонент приложения может отправлять сообщения в brokerChannel.Самый простой способ сделать это - внедрить SimpMessagingTemplate и использовать его для отправки сообщений.Как правило, вы вводите его по типу, как показано в следующем примере:
@Controller
public class GreetingController {
private SimpMessagingTemplate template;
@Autowired
public GreetingController(SimpMessagingTemplate template) {
this.template = template;
}
@RequestMapping(path="/greetings", method=POST)
public void greet(String greeting) {
String text = "[" + getTimestamp() + "]:" + greeting;
this.template.convertAndSend("/topic/greetings", text);
}
}