Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java wildfly群集上的Websocket问题_Java_Websocket_Cluster Computing_Wildfly 8_Mod Cluster - Fatal编程技术网

Java wildfly群集上的Websocket问题

Java wildfly群集上的Websocket问题,java,websocket,cluster-computing,wildfly-8,mod-cluster,Java,Websocket,Cluster Computing,Wildfly 8,Mod Cluster,我在SpringJSF集成应用程序中使用RichFacesA4J:push。我能够在wildfly 8.0.0上的非群集环境中使用websocket将消息推送到浏览器。 当我在redhat enterprise 7.0上的wildfly8.0.0上部署应用程序,并使用httpd集群时,推送消息不起作用 我在群集环境中遇到以下错误: 17:15:22,862 ERROR [io.undertow.request] (default task-3) UT005023: Exception handl

我在SpringJSF集成应用程序中使用RichFacesA4J:push。我能够在wildfly 8.0.0上的非群集环境中使用websocket将消息推送到浏览器。 当我在redhat enterprise 7.0上的wildfly8.0.0上部署应用程序,并使用httpd集群时,推送消息不起作用

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

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_集群,参考

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


非常感谢您的指点/建议。

对mod_群集的WebSocket支持

对mod_群集的WebSocket支持

在回答此问题时,AJP[默认设置]不支持HTTP升级,因此不支持WebSocket

如果切换到HTTP,websocket将起作用

要切换到AJP,您需要进行以下更改

改变

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
<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>

[注释掉proxy_ajp_模块并添加proxy_http_模块]

在modcluster子系统中

改变

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
<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>


[“default”是http侦听器的名称]


此外,在回答此问题时,您还需要在httpd中加载mod_proxy_wstunel。AJP[这是默认设置]不支持HTTP升级,因此不支持websocket

如果切换到HTTP,websocket将起作用

要切换到AJP,您需要进行以下更改

改变

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
<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>

[注释掉proxy_ajp_模块并添加proxy_http_模块]

在modcluster子系统中

改变

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
<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>


[“default”是http侦听器的名称]


另外,您还需要在您的httpd中加载mod_proxy_wstunel

让我在这个问题上向使用Apache2.2.x的人说两句话,如果您使用的是Apache2.2.x,您需要从Apache2.4为Apache2.2.x编译mod_proxy_wstunel,这有一个方法。接下来,要使用mod_cluster实现WebSocket,还需要编译mod_cluster 1.3.3+,如本文所述,并在虚拟主机外部的mod_cluster.conf中添加EnableWsTunnel


我希望能有所帮助。

让我在这个问题上给那些使用Apache 2.2.x的人两分。如果你使用的是Apache 2.2.x,你需要从Apache 2.4为Apache 2.2.x编译mod_proxy_wstunnel。这有一个方法。接下来,要使用mod_cluster实现WebSocket,还需要编译mod_cluster 1.3.3+,如本文所述,并在虚拟主机外部的mod_cluster.conf中添加EnableWsTunnel


我希望能有所帮助。

谢谢,我会关注这一点谢谢,我会关注这一点,并在mod_cluster.conf中启用wstunnel。注意:Current能够进行mod_proxy_wstunel集成,即它创建到负载最少/选择最少的节点的连接,但没有故障切换功能。如果工作节点失败,WS连接将丢失。@MichalKarmBabacek这是否意味着,Sam建议的配置更改加上mod_cluster 1.3.1.Final上mod_cluster.conf中的EnableWsTunnel将使websocket在其中一个群集节点中工作?@Rakesh,它将为整个群集启用它。基本上,它将自动为您提供支持,即所有工作节点上的所有上下文。感谢您的快速响应,并提出了这一点。有人知道如何使用Apache 2.2启用Enablewstunel吗?如果可能的话?我成功地为Apache 2.2编译了mod_proxy_wstunel,但我不知道mod_cluster.conf中的mod_cluster和
EnableWsTunnel是否也可以。注意:Current能够进行mod_proxy_wstunel集成,即它创建到负载最少/选择最少的节点的连接,但没有故障切换功能。如果工作节点失败,WS连接将丢失。@MichalKarmBabacek这是否意味着,Sam建议的配置更改加上mod_cluster 1.3.1.Final上mod_cluster.conf中的EnableWsTunnel将使websocket在其中一个群集节点中工作?@Rakesh,它将为整个群集启用它。基本上,它将自动为您提供支持,即所有工作节点上的所有上下文。感谢您的快速响应,并提出了这一点。有人知道如何使用Apache 2.2启用Enablewstunel吗?如果可能的话?我成功地为Apache2.2编译了mod_proxy_wstunnel,但我不知道mod_集群是否也可以