gpt4 book ai didi

java - wildfly 集群上的 Websocket 问题

转载 作者:行者123 更新时间:2023-11-29 05:11:23 25 4
gpt4 key购买 nike

我在我的 Spring-JSF 集成应用程序中使用 richfaces a4j:push。我可以在 wildfly 8.0.0 的非集群环境中使用 websocket 将消息推送到浏览器。当我使用 httpd 集群在 redhat enterprise 7.0 上的 wildfly8.0.0 上部署应用程序时,推送消息无法正常工作。

我在集群环境中得到以下错误:

17:15:22,862 ERROR [io.undertow.request] (default task-3) UT005023: Exception handling request to /star/__richfaces_push: java.lang.IllegalStateException: UT000077: The underlying transport does not support HTTP upgrade.

我的集群配置了 mod_cluster,引用 document

当我查找有关错误 UT000077 的详细信息时,它说“Apache httpd 不支持开箱即用的 HTTP 升级”,我了解 websocket 通信需要 HTTP 升级。建议使用 mod_proxy_wstunnel。但是,此配置的详细信息不可用。

非常感谢任何指示/建议。

最佳答案

在回答这个问题时,AJP [这是默认的] 不支持 HTTP 升级,因此不支持 websocket。

如果你切换到 HTTP websocket 将工作。

您需要做以下更改才能切换到 AJP

改变

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so

#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_http_module modules/mod_proxy_http.so

[注释掉 proxy_ajp_module 并添加 proxy_http_module]

在 modcluster 子系统中

改变

<subsystem xmlns="urn:jboss:domain:modcluster:1.2">
<mod-cluster-config advertise-socket="modcluster" connector="ajp">
<dynamic-load-provider>
<load-metric type="cpu"/>
</dynamic-load-provider>
</mod-cluster-config>
</subsystem>

<subsystem xmlns="urn:jboss:domain:modcluster:1.2">
<mod-cluster-config advertise-socket="modcluster" connector="default">
<dynamic-load-provider>
<load-metric type="cpu"/>
</dynamic-load-provider>
</mod-cluster-config>
</subsystem>

[“default”是http监听器的名字]

你还需要在你的 httpd 中加载 mod_proxy_wstunnel

关于java - wildfly 集群上的 Websocket 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28321511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com