Server side heartbeat listener?

Is there some point where you could register code to be executed when the server receives a heartbeat from the client? I’d like to update a timestamp in the DB when a session has been refreshed to I can clean up expired sessions later in case my “Session destroyed”-listener doesn’t get called for some reason. Or should I just take the reverse route and trust that the UI detach listener is called when the heartbeats are missed?

Thanks in advance,
Nik

Starting with Vaadin 14 you can add HeartBeatListeners: https://vaadin.com/api/platform/14.0.0.beta3/com/vaadin/flow/component/internal/UIInternals.html#addHeartbeatListener-com.vaadin.flow.component.internal.HeartbeatListener-

Ronny Edler:
Starting with Vaadin 14 you can add HeartBeatListeners: https://vaadin.com/api/platform/14.0.0.beta3/com/vaadin/flow/component/internal/UIInternals.html#addHeartbeatListener-com.vaadin.flow.component.internal.HeartbeatListener-

Ah. Cool. I’ll have to look into after my vacation, it should be released by then

Maybe it would be helpful for someone, how to add HeartbeatListener and few more listeners using one class (Spring version):

@Component
@ListenerPriority(Integer.MAX_VALUE - 2)
public class SecurityListener
		implements VaadinServiceInitListener, SessionDestroyListener, UIInitListener, BeforeEnterListener, HeartbeatListener {

	@Override
	public void serviceInit(ServiceInitEvent event) {
		event.getSource().addUIInitListener(this);
		event.getSource().addSessionDestroyListener(this);
	}

	@Override
	public void sessionDestroy(SessionDestroyEvent event) {
	}

	@Override
	public void uiInit(UIInitEvent event) {
		UI ui = event.getUI();
		ui.addBeforeEnterListener(this);
		ui.getInternals().addHeartbeatListener(this);
	}

	@Override
	public void beforeEnter(BeforeEnterEvent event) {
	}

	@Override
	public void heartbeat(HeartbeatEvent event) {
	}
}