Я хочу отправлять сообщения с Java клиентам WebSocket. Я успешно отправил js-клиент на сервер и получил сообщение обратно на 2 js-клиентах, поэтому код на стороне клиента работает нормально.
Моя проблема в том, что я хотел бы инициировать отправку, когда в приложении Java происходят события. Так, например, каждый раз, когда размещается 10 заказов, отправляйте сообщение всем подписанным клиентам. Это возможно?
Моя текущая конфигурация:
<websocket:message-broker application-destination-prefix="/app">
<websocket:stomp-endpoint path="/hello">
<websocket:sockjs/>
</websocket:stomp-endpoint>
<websocket:simple-broker prefix="/topic"/>
</websocket:message-broker>
@Controller
public class MessageController {
@MessageMapping("/hello")
@SendTo("/topic/greetings")
public Greeting greeting() throws Exception {
return new Greeting("Hello world");
}
}
Я бы хотел сделать что-то вроде этого:
public class OrderManager {
@Autowired MessageController messageController;
int orderCount = 0;
public void processOrder(Order o) {
orderCount++;
if(orderCount % 10 == 0)
messageController.greeting();
}
}
и все подписанные клиенты на веб-сокет получают сообщение.