【问题标题】:when do sockjs fallback to xhr streaming transport instead of websocketsockjs 什么时候回退到 xhr 流传输而不是 websocket
【发布时间】:2018-04-05 11:27:49
【问题描述】:

我有一个使用 websockets 的简单网络应用程序。 简单的网络应用程序: 前端 - 使用 sockjs, stomp 后端 - Spring 4.2.x

前端和后端打包在同一个 WAR 中,这个 WAR 部署在 IBM WebSphere Application Server v9.x 上

当我在 chrome(61.x)/firefox(56.0, 32 位) 中检查开发者工具/Web 控制台时,我发现 websocket 传输没有被使用,它始终是 xhr 流。为了使用 websocket 传输,我在 sockjs 中传递了传输选项,如下所示,但是在此更改之后,websockets 停止工作。

var sockjs = new SockJS(我的网址, null, {transports: ["websocket"]});

我们是否需要更改 IBM WebSphere Application Server v9.x 上的任何配置以启用 websocket 传输?

更新:在 tomcat/liberty 服务器上,示例应用程序始终使用 websocket 传输。仅在 WAS 上,它使用 xhr 流。 WAS 中的问题?

【问题讨论】:

    标签: websocket websphere spring-websocket sockjs ibmhttpserver


    【解决方案1】:

    Websphere v9.x 默认开启 Websocket 协议处理

    【讨论】:

    • 是否有任何来自 IBM 的示例代码可以用来测试 WAS 上的 websocket 传输,或者是浏览器决定传输?
    • 想法:1) WebSphere 将 websockets 实现为标准 websocket 规范,因此任何符合规范的“Hello World”应用程序都应该可以正常运行。 2)developer.ibm.com/wasdev/downloads/#asset/…。这些说明适用于 WebSphere Liberty,但可以直接在 WebSphere Application Server V9.x 中使用战争 3) github 示例:github.com/WASdev/sample.async.websockets 4) WebSphere Liberty 有一个应用程序加速器,您可以使用它来为 WebSphere Application Server 上的 WebSocket 程序构建战争V9.x:liberty-app-accelerator.wasdev.developer.ibm.com/start
    • 示例应用可以运行,但不确定为什么它总是使用 xhr 流。
    • 在 tomcat/liberty 上,示例应用程序使用 websocket 传输,但仅在 WAS 上它使用 xhr 流,看起来像 WAS 中的一个问题。
    猜你喜欢
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多