6

私のサービスは、既に Websockets を使用して HTML5 ブラウザ内クライアントと通信しています。クライアントは、通常の http 要求から同じサーバーによって処理されます。

今、私は同じサービス/アプリをブラウザの外で提供したいと思います.TCPソケットを介して提供したいと思います.

私が使用している RPC/アクション オブジェクトは同じになり、シリアル化も同じになり、ロジックも同じになります。WebSocket の代わりに TCP ソケットを使用したいだけです。

コードを同じ「プロジェクト フォルダー」の下にまとめて、playframework サーバーを展開するときに一度に開始し (基本的に、開始時に WebSocket、TCP ソケット、および http 要求のリッスンを開始したい)、すべてを展開時に同じパッケージ。

そんなこと知ってる:

  • WebSocket は非ブラウザー アプリで使用できるため、必須ではありませんが、これは演習または好奇心の問題と考えてください。
  • playframework は netty の上に構築されており、以前はいくつかの TCP サービスを実行するために netty を使用していました (ただし、大きなものは何もなく、製品の準備もできていません...したがって、専門家ではありません)。だから彼らは一緒に働くべきですよね?

私がやろうと思っていたこと:

  1. akka アクターに新しいソケット接続をリッスンさせます。
  2. 接続 (WS または TCP ソケット) をClientConnectionManagerインスタンスにラップする
  3. 接続/rpc ロジックを処理するアクターに渡します。

私が検討したその他のリード: playframework Controller クラスの再実装。

または、これに対して既に実装されているソリューションはありますか?

4

0 に答える 0