Mensagem push do Java com Spring 4 WebSocket
Gostaria de enviar mensagens de Java para clientes WebSocket. Fiz com sucesso um cliente js enviar para o servidor e receber uma mensagem de volta em 2 clientes js, para que o código do lado do cliente funcione bem.
Meu problema é que eu gostaria de iniciar um envio quando ocorrerem eventos no aplicativo Java. Por exemplo, sempre que 10 pedidos forem feitos, envie uma mensagem para todos os clientes inscritos. Isso é possível?
Minha configuração atual:
<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");
}
}
O que eu gostaria de poder fazer é algo como isto:
public class OrderManager {
@Autowired MessageController messageController;
int orderCount = 0;
public void processOrder(Order o) {
orderCount++;
if(orderCount % 10 == 0)
messageController.greeting();
}
}
e todos os clientes inscritos no websocket recebem uma mensagem.