Я использую SSE с реактором Flux для сбора системных показателей linux и публикации в браузере (javascript источник событий).
В настоящее время проблема не может отправить указанные c данные в указанные c клиент. После прохождения нескольких сообщений SO сообщается об использовании прослушивателя событий в источнике событий, и ответ от сервера должен содержать событие в качестве ключа в ответе.
Поскольку я возвращаю объект с сервера, достаточно ли иметь событие в качестве одного из ключей в ответе json, который будет идентифицирован источником событий.
Установка уникального номера на стороне клиента, который будет возвращен в событие в ответе json.
Спасибо за помощь!
Javascript:
jsonStreamObjectHeap.addEventListener("197e08e-f9a4-4e6e-9a04-220ade08a8f4",function(e){
$.each(message, function(index, value) {
/*some operation*/
});
}
Ответ от контроллера покоя:
{
"event":"197e08e-f9a4-4e6e-9a04-220ade08a8f4",
"data":"2048"
}
Код контроллера покоя:
Flux<Long> interval = Flux.interval(Duration.ofSeconds(1));
interval.subscribe((i) -> testStreamList.forEach(testStream -> {
try {
generateTestStream(testStream, UUID);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}));
Flux<List<TestStream>> transactionFlux = Flux.fromStream(Stream.generate(() -> testStreamList));
return Flux.zip(interval, transactionFlux).map(Tuple2::getT2);