2016-04-12 18 views
0

Java PlayでWebアプリケーションを作成していますが、websocketをサーバーに接続し、JSONで多数の「ライブ」データを送信し、別のWebソケットをサーバーとデータを収集します。私はここにオブザーバーパターンを実装しようとしているので、サーバーは更新されるたびにデータを送信します。私はそれを働かせるように見えない。Java Playフレームワークのオブザーバーパターン

私はJava Playアプリケーション内でオブザーバーパターンを実装する方法を尋ねていると思います。

私はこのコードをonStartメソッドに入れてみましたが、WebSocketが接続されたときにオブジェクトがインスタンス化されるため、InstantiationExceptionを取得し続けます。

WSocket socket = new WSocket(); //Observable 
Listener listener = new Listener(socket); //Observer 

ご了承ください。

+0

私はすなわち、1つのソケットはJSONを送信することができ、両方のソケットが機能していることは言うかもしれませんもう一方はJSONデータを取得できます。 (別途テスト済み) –

+0

Websocket接続はどのように処理していますか? https://playframework.com/documentation/2.5.x/JavaWebSocketsのような俳優?どのバージョンのPlayをお使いですか? – Anton

+0

私はPlay 2.5.1を使用していますが、現在コールバックを使用してソケットを処理しています:) –

答えて

0

私が間違っている場合は私を訂正してください。しかし、私はあなたが過酷な事をしていると思います。私が正しく理解していれば、1つのWebSocket接続から送信されたデータが他のアクティブなWebSocket接続に取り込まれることが必要です。


あなたがプレイ中のコールバックを使用している場合は、WebSocketの準備ができたとき、あなたは両方のinoutチャンネルを取得します。あなたは何ができるか

は、いくつかのList内のすべてのoutチャンネルを収集し、あなたには、いくつかのメッセージを取得するたびに、ちょうどあなたが収集したoutチャンネルのすべてに、このメッセージを放送することです。

そして、あなたが時間を持っている場合は、アッカの俳優とのWebSocket接続の取り扱いを書き換える考える - それは簡単に、より安定している(とも楽しい;)

+0

あなたは完全に正しいです。このプロジェクトはスパゲッティに近づくほど近いです。 アウトチャネルをリストに入れようとしましたが、今は動作します:) –

+0

嬉しいことです:) – Anton

関連する問題