控制瓦丁心跳

Control Vaadin Heart beats

本文关键字:心跳 丁心跳 控制      更新时间:2023-09-26

有没有办法控制何时停止向服务器发送心跳?

我的要求是当用户在文本框中键入内容或将鼠标指针悬停在 UI 上时,UI 不会过期。

当然,当用户在页面上执行某些活动时,我们可以有一些java脚本黑客来发送一些服务器请求,最终将使UI过期。

但我更想通过心跳来控制它,如果用户真的远离 UI,那么在超时后停止发送心跳,但在用户在文本框中键入或悬停鼠标时继续发送心跳(以其定义的速率)。

处理这个问题的最佳方法是什么?

我知道

只要有用户输入,您就希望您的 UI 处于活动状态。如果用户空闲,则应删除 UI,而不是被检测信号阻塞。

您可以通过禁用检测信号机制来执行此操作。将参数closeIdleSession设置为 true 就可以了。在您的网络中.xml写下:

<servlet>
    ...
    <init-param>
        <param-name>closeIdleSessions</param-name>
        <param-value>true</param-value>
    </init-param>

如果用户在指定的超时时间内未触发任何请求,则会话将失效。这样,您的 UI 将在会话超时过期后销毁。会话超时在 Web 中设置.xml通过

<session-config>
    <session-timeout>60</session-timeout><!-- in minutes -->
</session-config>

通过向文本字段添加TextChangeListener,键入将发送请求并自动刷新服务器超时。