Push-сообщение из Java с помощью Spring 4 WebSocket
Я хотел бы отправлять сообщения из 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();
}
}
и все подписанные клиенты на websocket получают сообщение.