控制Vaadin Heart beats

时间:2016-02-29 06:51:23

标签: javascript java vaadin vaadin7

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

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

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

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

处理此问题的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

我知道只要有用户输入,您希望UI处于活动状态。如果用户空闲,则应删除UI并且不会被心跳占用。

您可以通过禁用心跳机制来执行此操作。将参数closeIdleSession设置为true即可。 在你的web.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,输入将发送请求并自动刷新服务器超时。