私は、Java と Netty に基づくチェス プレイ サーバーと、C++ を使用したクライアント アプリケーションを開発しています。クライアントとサーバー間のメッセージング プロセスは Google Protobuf プロトコルに基づいています。サーバー アプリと緊密に統合されるように、Web サイトをアプリケーション サーバーのクライアントとして機能させたいと考えています。
ウェブサイトに Play 2.1(JAVA) フレームワークを選択しました
1)
まず、Netty サーバー インスタンスを Play 2.1 アプリケーションから実行しようとして問題が発生したため、次のコードを Global.java (Play フレームワークの起動ファイル) に追加しました。
public void onStart(Application app) {
// ...
new Thread() {
public void run() {
new NettyServer().run();
}
}.start();
}
この方法で Netty の独自のインスタンスを実行することは良い考えだと思いますか?
2) データを検証する方法がわかりません。アプリケーション サーバーは C++ クライアントと Web サイトの両方から異なるプロトコルで検証するデータを取得するため、クライアントは protobuf プロトコルを使用してバイナリ エンコードされたデータとして送信し、Web サイトは POST 要求を送信します。両方のクライアント Web サイトから送信されたデータを検証するために、Form < T > ヘルパーを使用できますが、バイナリでエンコードされた protobuf データには使用できないと考えていました。検証を管理する方法についてのアイデアはありますか?
3) i18n Play モジュールの Messages.get() を使用して、メッセージをユーザーの言語に翻訳します。クライアントがブラウザを使用している場合、Play はクライアントのリクエスト ヘッダーからユーザーの言語を判断し、適切な翻訳ファイルを選択します。
しかし、私のクライアントはどうですか?ユーザーの言語について何も知らないので、アプリに送信できません。
さらに、Messages.get() で手動で言語を設定する方法を見つけることができませんでした