You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vaadin 14浏览器过度轮询:如何限制请求频率?

限制Vaadin 14长轮询请求频率的方法

由于你的JBoss 7.x不支持WebSocket,Vaadin自动降级为长轮询模式导致请求过于频繁,可通过以下方式调整:

  • 调整Atmosphere核心参数
    修改Vaadin推送配置,增大心跳间隔和长轮询超时时间来降低请求频率。在application.properties中添加:

    # 设置客户端心跳间隔为30秒
    vaadin.push.atmosphere.pingInterval=30000
    # 设置长轮询请求超时为60秒
    vaadin.push.atmosphere.longPolling.timeout=60000
    

    这两个参数分别控制客户端主动发送心跳的间隔,以及单个长轮询请求保持连接的时长,调大后能显著减少请求次数。

  • 尝试切换到流式传输模式
    长轮询并非唯一备选推送模式,可强制Vaadin使用流式传输(streaming),这种模式下连接保持更久,请求频率更低。在application.properties中配置:

    vaadin.push.transport=streaming
    

    注意需确认JBoss 7.x支持该传输方式,部分旧容器可能存在兼容性问题。

  • 优化应用内的推送逻辑
    检查代码中是否存在频繁触发UI更新的逻辑,比如不必要的UI.push()调用、高频定时刷新等。将零散更新合并为批量操作,或延长定时任务执行间隔,从根源减少推送需求。

  • 直接配置Atmosphere Servlet参数
    若通过Vaadin配置不生效,可在web.xml中直接设置Atmosphere的Servlet参数:

    <servlet>
        <servlet-name>VaadinServlet</servlet-name>
        <servlet-class>com.vaadin.flow.server.VaadinServlet</servlet-class>
        <init-param>
            <param-name>org.atmosphere.cpr.longPollingTimeout</param-name>
            <param-value>60000</param-value>
        </init-param>
        <init-param>
            <param-name>org.atmosphere.cpr.pingInterval</param-name>
            <param-value>30000</param-value>
        </init-param>
    </servlet>
    

    这种方式直接作用于Atmosphere框架,和Vaadin配置效果一致。

内容的提问来源于stack exchange,提问作者Luc De Kesel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 01:37:27