2016-06-27 20 views
4

私は私のために興味深い機能を持っているWSO2のESB 5.0.0、WebSocketをのベータリリースをテストしています。WSO2 ESB 5.0.0 BETAのWebSocket InboundEndPoint

文書定義(https://docs.wso2.com/display/ESB500/WebSocket+Inbound+Protocol)のように、着信エンドポイントを宣言していますが、私はクライアントから空のメッセージを受信できます(接続が完了しています)。クライアントにメッセージを送信できません。

誰かにこの機能をお試しください。

ありがとうございました。

PD:これは私のWSインバウンド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> 

であり、これらは全く十分ではないのWebSocketプロトコルでは、アプリケーションレベルのプロトコルであるHTTPとは異なり

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

答えて

3

私の配列であり、これらのメッセージを処理する着信メッセージ内の情報。これらのメッセージは、テキストまたはバイナリ低レベルフレームのいずれかです。このため、WebSocketにカスタムサブプロトコルを定義する必要がありました。これにより、クライアントとサーバーの両方が通信するフレームのコンテンツタイプを知ることができます。

デフォルトでは、すべての受信エンドポイントは、Synapseサブプロトコルに従ってサポートされます。

synapse(contentType='application/json') 
synapse(contentType='application/xml') 
synapse(contentType='text/xml') 

Netty WebSocket client以下のコマンドを使用してこれをテストしました。一度クライアントが接続(ハンドシェイク)したら、メッセージ<Test>message</Test>を入れて、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 
+0

こんにちはChaminda、wso2esbから外部websocketクライアントにメッセージを送信できますか?アウトフローディスパッチシーケンスを定義しますが、wso2esbからメッセージを送信できないため、このシーケンスでエンドポイントなどを設定する必要があるかどうかはわかりません。 – Josh

+0

こんにちはジョシュ、私はwso2esbからメッセージを送信することができました。上記のように-DsubProtocol = "synapse(contentType = 'application/xml')" paramを入れましたか? –

関連する問題