Reactive Browser Callable Services Hilla
How to create reactive browser callable services for a Vaadin Hilla user interface.
When building a user interface with Vaadin Hilla, you would use reactive browser callable services to push messages from the server to the browser. A reactive service is a service that returns a Flux
from Reactor.
Here is an example of a browser callable service that emits the current date and time every second:
@BrowserCallable
public class TimeService {
@AnonymousAllowed
public Flux<@Nonnull String> getClock() {
return Flux.interval(Duration.ofSeconds(1)) 1
.onBackpressureDrop() 2
.map(_interval -> Instant.now().toString()); 3
}
}
-
Emit a new message every second.
-
Drop any messages that for some reason can’t be sent to the client in time.
-
Output the current date and time as a string.
Hilla generates the necessary TypeScript types to subscribe to this service from the browser.
For more information about updating the UI using a reactive service, see the Reactive Streams documentation page.