WSO2 ESB 5.0.0 BETA WebSocket InboundEndPoint

时间:2016-06-27 11:24:30

标签: wso2esb

我正在测试wso2 esb 5.0.0的beta版本,它对我来说很有趣,websockets。

我声明de入站端点,就像文档定义(https://docs.wso2.com/display/ESB500/WebSocket+Inbound+Protocol),但我只能从我的客户端接收空消息(连接完成),我无法发送任何消息给我的客户。

有人试过这个功能吗?

感谢。

PD:这是我的ws inbound enpoint

<inboundEndpoint name="testws" onError="errorsq" protocol="ws"
    sequence="testwssq" suspend="false">
    <parameters>
        <parameter name="inbound.ws.port">9091</parameter>
        <parameter name="ws.outflow.dispatch.sequence">testbesq</parameter>
        <parameter name="ws.outflow.dispatch.fault.sequence">errorsq</parameter>
        <parameter name="ws.client.side.broadcast.level">1</parameter>
    </parameters>
</inboundEndpoint>

这些是我的序列

 <sequence name="testbesq">
    <log level="full"/>
</sequence>
<sequence name="testwssq">
    <log level="full"/>
    <log level="custom">
        <property name="request" value="message receive"/>
    </log>
</sequence>

1 个答案:

答案 0 :(得分:3)

与HTTP(一种应用程序级协议)不同,在WebSocket协议中,传入消息中没有足够的信息来处理这些消息,这些消息是文本或二进制低级帧。因此,我们必须通过WebSocket定义一些自定义子协议。这将允许客户端和服务器方知道它们通信的帧的内容类型。

默认情况下,每个入站端点支持Synapse子协议。

<Test>message</Test>

我使用Netty WebSocket客户端及以下命令来测试它。一旦客户端连接(握手),我就会发出消息java -DsubProtocol="synapse(contentType='application/xml')" -DclientPort=9091 -cp netty-example-4.0.30.Final.jar:lib/*:. io.netty.example.http.websocketx.client.WebSocketClient ,我可以在websocket客户端看到后端响应。

RSpec.configure do |config|
  config.include Devise::TestHelpers, type: :controller
  config.include Devise::TestHelpers, type: :view
  config.include Warden::Test::Helpers
end