Ich habe mit dem folgenden Code versucht, neu geschrieben von @codependent ‚s Lösung mein Bedürfnis gerecht zu werden. Es reagiert. Beenden Sie die Verbindung jedoch niemals, wenn die Browser-Registerkarte geschlossen wird. Es läuft auf der Serverseite. Alles was mit HTTP GET hier zu tun ist?
@RequestMapping(value = "/getNotificationCount/{userId}",method = RequestMethod.GET)
public SseEmitter getNotificationCount(@PathVariable("userId") String userId, HttpServletResponse response){
SseEmitter emitter = null;
try {
emitter = new SseEmitter();
while(true) {
try{
int count= myService.getNotificationCount(Integer.parseInt(userId));
emitter.send(count);
Thread.sleep(30 * // minutes to sleep
60 * // seconds to a minute
1000); // milliseconds to a second
}catch(ClientAbortException cae){
LOGGER.info("ClientAbortException Breaking the notification stream");
break;
}
}
//Closes the stream
emitter.complete();
} catch (Exception e) {
//Closes the stream
emitter.complete();
}
return emitter;
}
Mögliches Duplikat [SSE Implementierung im Frühjahr REST] (http://stackoverflow.com/questions/31229015/sse-implementation-in-spring-rest) – kaliatech
Es gab keine Feder Boot-Lösung in diesem Link. Es sagt, dass es derzeit keine Unterstützung gibt. So würde bitten, diese Frage zu verlassen. – Anand