Spring Boot WebFlux – как НЕ иметь «data:» в потоковом выводе на клиент?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Spring Boot WebFlux – как НЕ иметь «data:» в потоковом выводе на клиент?

Сообщение Anonymous »

Я использую Spring Boot версии 2.7.10 с WebFlux.
У меня есть список Object, который я хотел перебрать по каждому элементу в списке, для каждого элемента , сериализуйте объект в JSON и передайте JSON {...} клиенту веб-браузера.
Вот код Spring Controller:

Код: Выделить всё

@RequestMapping(path = "/test", method = RequestMethod.GET, produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public void Flux createFluxForCoverageOrLayerObject(List objects) throws PetascopeException {
Flux result =
Flux.fromIterable(objects)
.map(object -> {
String jsonObj = this.createProprietaryObjectInJson(object);
return Optional.of(jsonObj);
})
.filter(Optional::isPresent)  // Filter out Optional.empty() values
.map(Optional::get)  // Unwrap the value from the Optional
.concatWith(Mono.just("Complete")) // Signal the end of the stream
.doOnComplete(() -> log.debug("Proprietary Capabilities stream has completed sending all items."));

return result;
}
На клиенте я использую код Javascript с API fetch(), и он всегда имеет данные: в качестве префикса в полученном сообщении.
Я знаю, что это часть стандарта SSE (Sever Send Event), но как я могу избавиться от этих данных: со стороны сервера, чтобы это не нарушило функцию потоковой передачи из WebFlux?
Другими словами, это обязательно отправлять эти данные: клиенту?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -to-client
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»