Код: Выделить всё
@CrossOrigin(origins = "http://localhost:4200") // Angular Dev-Server
@GetMapping(path = "/stream-flux", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux streamFlux() {
return Flux.interval(Duration.ofSeconds(1))
.map(sequence -> "data: Flux - " + LocalTime.now().toString() + "\n\n")
.doOnSubscribe(subscription -> {
System.out.println("SSE-Stream started.");
})
.doOnNext(value -> {
System.out.println("SSE-Value sent: " + value);
})
.doOnError(error -> {
System.out.println("SSE-Error: " + error.getMessage());
})
.doOnComplete(() -> {
System.out.println("SSE-Stream complete.");
});
}
< /code>
Теперь этот пример прекрасно работает с HTTP-вызовом (и соответствующими настройками пружины), протестированный с Curl. < /p>
curl -v http://localhost:8080/stream-flux
Протестировано со следующим вызовом: < /p>
Код: Выделить всё
curl -k -v https://localhost:/stream-flux
Я использую самореагированный сертификат. и скручивание сбивает с толку: < /p>
Код: Выделить всё
* schannel: remote party requests renegotiation
* schannel: renegotiating SSL/TLS connection
* schannel: SSL/TLS connection renegotiated
* Request completely sent off
Подробнее здесь: https://stackoverflow.com/questions/794 ... -and-https