2016-05-11 4 views
2

ClientWebSocketContainer Springクラスは、リモートエンドポイントへのWebSocket接続セッションを提供できます。 ClientWebSocketContainer stop()、start()、getSession()メソッドを使用してクローズされた接続を再確立しようとすると、接続は確立されますがClientWebSocketContainerはそうではないと判断します失敗した試行でopenConnectionExceptionが設定されたために接続されました。ClientWebSocketContainer - WebSocket接続を作成するためにクライアント側で使用できますか?

@Override 
public void onFailure(Throwable t) { 
    logger.error("Failed to connect", t); 
    ClientWebSocketContainer.this.openConnectionException = t; 
    ClientWebSocketContainer.this.connectionLatch.countDown(); 
} 

私はこの方法でClientWebSocketContainerを使用することができるはずですか、私は自分のクライアント接続マネージャを作成する必要がありますか?

答えて

1

私はバグだと思っていますが、ClientWebSocketContainerロジックで何らかの欠落があります。

私はちょうど問題に関してJIRAを提起しました。今日は固定されます。

あなたの仕事は何ですか?

ClientWebSocketContainerConnectionManagerSupportに基づいており、その実装の1つはWebSocketConnectionManagerです。したがって、セッションを取得するために最後のものを使用することを検討してください。

Spring Integration WebSocketアダプタを使用している場合は、独自のClientWebSocketContainerを実装しない限り、選択肢はありません。はい、それは完全に既存のものに基づいているかもしれません。

+0

フィードバックありがとうございます! 私はクライアントとしてサーバーに接続し、サーバーにデータをプッシュする必要があるという面白い状況があります。これが私がwebsocketセッションを取得するのに興味がある理由です。 IIRC WebSocketConnectionManagerにはセッションがありますが、メッセージハンドラ以外ではセッションにアクセスするためのメカニズムは提供されていません。 – Emmet

+0

M-m-m。あなたは実際に ''を調べる必要があります:http://docs.spring.io/spring-integration/reference/html/web-sockets.html#web-socket-アウトバウンドアダプター。しかし、あなたの問題の修正をSI-4.2.6.RELEASEで準備しておくことは明日も可能になります! –

+0

こんにちはM-m-m、WebSocketOutboundMessageHandlerを検討していましたが、接続が切断された場合にソケットを再接続する方法を判断できませんでした。私は何か見落としたことがありますか? – Emmet

関連する問題