我正在测试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>
答案 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