Push-Nachricht von Java mit Spring 4 WebSocket

Ich möchte Nachrichten von Java an WebSocket-Clients senden. Ich habe einen js-Client erfolgreich veranlasst, eine Nachricht an den Server zu senden und auf 2 js-Clients zurück zu empfangen, sodass der clientseitige Code einwandfrei funktioniert.

Mein Problem ist, dass ich einen Sendevorgang einleiten möchte, wenn Ereignisse in der Java-App auftreten. So wird beispielsweise jedes Mal, wenn 10 Bestellungen eingegangen sind, eine Nachricht an alle abonnierten Kunden gesendet. Ist das möglich?

Meine aktuelle Konfiguration:

<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");
    }
}

Was ich tun möchte, ist ungefähr so:

public class OrderManager {
    @Autowired MessageController messageController;
    int orderCount = 0;

    public void processOrder(Order o) {
        orderCount++;
        if(orderCount % 10 == 0)
            messageController.greeting();
    }
}

und alle am Websocket angemeldeten Clients erhalten eine Nachricht.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage