在Wildfly 9中通过websocket配置STOMP

时间:2016-04-18 04:32:13

标签: websocket hornetq stomp wildfly-9

我需要在wildfly 9中的websocket上配置STOMP。到目前为止我做了什么,

  1. 在互联网上获得帮助后,我在standalone-full.xml中添加了connector / acceptores,用于在websocket上配置STOMP。配置如下:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
  2. 并为其添加套接字绑定(端口61614)。

    使用此配置,wildfly 9启动。但是我无法通过websocket连接到STOMP。尝试使用java websocket客户端通过ws:// localhost:61614 / stomp进行连接。但无法使用相同的连接。我也尝试使用javascript STOMP客户端库进行连接。但结果相同,无法使用相同的连接。 (如此处所述,http://jmesnil.net/stomp-websocket/doc/

    此后,我尝试在接受器配置上添加STOMP_WS协议:                                                                   

    但是当我用这个启动Wildfly 9时,我导致错误说"错误实例化远程接受器org.hornetq.core.remoting.impl.netty.Netty.NettyAcceptorFactory:HornetQException [errorType = GENERIC_EXCEPTION message = HQ119085: Classpath缺少协议STOMP_WS的协议管理器"

    另一件事是当我开始狂​​野地9时,我在日志中看到以下行,

    10:37:33,866 INFO [org.hornetq.core.server](ServerService线程池 - 64)HQ221043:添加协议支持CORE 10:37:33,878 INFO [org.hornetq.core.server](ServerService线程池 - 64)HQ221043:添加协议支持AMQP 10:37:33,881 INFO [org.hornetq.core.server](ServerService线程池 - 64)HQ221043:添加协议支持STOMP

    但我对STOMP_WS协议没有看到相同的内容。

    所以我的问题是, 1.如何在wildfly 9中配置STOMP_WS? 2.如果我只使用netty connector / acceptor配置STOMP,那是否意味着它是关于websocket的STOMP?

    我已经在Wildfly 8,9和10中尝试了所有这些,并且在每个版本中都观察到相同的事情。

    非常感谢任何帮助!!

1 个答案:

答案 0 :(得分:2)

在Wildfly 9中更改Netty jar后修复此问题。之前它是netty-all-4.0.26.Final.jar。我用netty-all-4.0.13.Final.jar替换它。现在我可以使用以下配置通过websocket连接到STOMP:

                <netty-acceptor name="netty-acceptor" socket-binding="netty">
                    <param key="protocols" value="STOMP"/>
                </netty-acceptor>

注意:我没有使用STOMP_WS协议。