大气回退不起作用?

Atmosphere fallback not working?

我是新手。到目前为止,我已经成功地为我现有的 Tomcat 8 + Spring + Struts2 网络应用程序添加了氛围。我使用的是当前版本(atmosphere-runtime 2.4.24,atmosphere-spring 2.4.20 和 atmosphere.js 2.3.5)。

对于某种简单的状态页面,我已经设法使 SSE 传输正常工作。使用 Google Chrome 或 Mozilla Firefox 效果非常好。我喜欢它! 实施此操作后,我想检查无法支持 SSE(Internet Explorer 和 Edge)的浏览器的回退。在客户端日志中,我可以看到 atmosphere corretly 检测到缺少 SSE 功能并使用回退:

    Server Side Events(SSE) is not supported, using request.fallbackTransport (long-polling)
atmosphere.js (3272,21)

 Thu May 24 2018 08:54:28 GMT+0200 (Mitteleuropäische Sommerzeit) Atmosphere: ajaxRequest.onreadystatechange, new state: 2
atmosphere.js (3272,21)

 Thu May 24 2018 08:54:28 GMT+0200 (Mitteleuropäische Sommerzeit) Atmosphere: ajaxRequest.onreadystatechange, new state: 3
atmosphere.js (3272,21)

 Thu May 24 2018 08:54:28 GMT+0200 (Mitteleuropäische Sommerzeit) Atmosphere: ajaxRequest.onreadystatechange, new state: 4
atmosphere.js (3272,21)

 Thu May 24 2018 08:54:29 GMT+0200 (Mitteleuropäische Sommerzeit) Atmosphere: ajaxRequest.onreadystatechange, new state: 2
atmosphere.js (3272,21)

 Thu May 24 2018 08:54:29 GMT+0200 (Mitteleuropäische Sommerzeit) Atmosphere: Firing onOpen
atmosphere.js (3272,21)

 Atmosphere connected using long-polling
utils.js (879,3)

 Thu May 24 2018 08:54:29 GMT+0200 (Mitteleuropäische Sommerzeit) Atmosphere: Firing onOpen
atmosphere.js (3272,21)

 Thu May 24 2018 08:54:29 GMT+0200 (Mitteleuropäische Sommerzeit) Atmosphere: ajaxRequest.onreadystatechange, new state: 3
atmosphere.js (3272,21)

但是即使我可以调试服务器端并看到正在写入 AtmosphereResource 的消息,也没有数据到达客户端。 这就是我在客户端初始化大气连接的方式:

request = { 
        url: '<s:url value="/public/sse/ci" />',
        contentType: "application/json",
        method: 'POST',
        logLevel: 'debug',
        transport: 'sse',
        reconnectInterval: 5000,
        fallbackTransport: 'long-polling'
    };

谁能给我一个正确方向的提示?

亲切的问候,

塞巴斯蒂安

好的。

我终于让它工作了。就像在 this Whosebug question 中一样,我在我的服务器配置中添加了 TrackMessageSizeInterceptor 而不是在客户端配置中。 也许其他人会来这里阅读答案。