すべての良い一日。 オンラインの3Dゲームを開発しています。Javaプラットフォームが選択されました。 3Dでは、jmonkeyengineエンジンが選択されました。 そして、サーバー側として、単純なp2pフレームワーク、クライアントでの表現の実装を備えたMVCを作成することにしました。
例とドキュメントを含む更新されたブログ:
java-framework-jsocket.blogspot.com便利な場合:1.モバイルサービス用のサーバー。
2. p2pが必要なマルチユーザーアプリケーション。
3.オンラインゲーム。
4.必要に応じて急流。
チャート:
動作原理:1.クライアントは、変数と呼び出すタスクをリストしたメッセージをサーバーに送信します。
2.メッセージは、着信メッセージのキューに分類されます。
3.ルーターは、これらの変数を使用して目的のタスクを開始します。
4.タスクでは、ユーザーに応答を送信します。
追加機能:1.クライアントとサーバーのポートを構成します。
2.データベースモデル。
3.着信メッセージの検証。
4.ユーザーの権利。
5.モジュール。
6.セッションのメカニズム。
7.チーム。
8. tcp / udpプロトコルを変更します。
手順、例、ドキュメント→
http://jsockframework.blogspot.com/→
https://github.com/nnpa/jsock/→
youtube→
jsock.docメッセージの送受信の例顧客:
サーバー:
package tasks; import jsock.message.JInMessages; import jsock.message.JOutMessages; import jsock.task.JClientTask; import models.Users; public class JTestTask extends JClientTask{ public JTestTask(JInMessages message) { super(message); } @Override public String[][] rules(){ String[][] rules = { {"require","message"} }; return rules; } @Override public String rights() {
1.クライアントは、呼び出されたタスクの名前を含む文字列をjsonサーバーに送信します。
2.タスクはメッセージから変数を抽出し、応答を送信します。
挑戦するタスクは、tasksフォルダーに作成し、JClientTaskから継承する必要があります。 コンストラクターは、着信メッセージとともにJInMessagesクラスを渡す必要があります。 ルール、権利、アクションメソッドを実装する必要があります。 ルールは変数を検証するためのルールを記述します;独自の検証ルールを書くことができます。 権利では、アクションを引き起こす権利を持つユーザーの権利のリスト。
アクションではメインコード。
変数を抽出する String message = this.message.json.get("message").toString();
返信とキュー文字列 String outString = "{\"message\":\"Test\"}"; JOutMessages outMessage = new JOutMessages(this.message.ip,outString); outMessage.insert();
ipの代わりに、ソケットでリッスンし、json文字列を待機する任意のipを配置できます。
モデル指示に従ってフレームワークをインストールすると、データベースに2つのテーブル、Users、Sessionが作成されます。 使用例は、タスクのあるフォルダーです。
すべてのモデルは、データベース接続と基本メソッドを実装するDBQueryから継承したモデルフォルダーに作成する必要があります。 モデルクラスでは、データベースとの対話のロジックを実装する必要があります。
ユーザー権利1.権利は、権利メソッドのタスク(ゲスト、ユーザー、管理者)で説明する必要があります。 権限のないユーザーにはゲスト権限があります。 登録されたユーザーにはユーザーが割り当てられ、これらの値はデータベースの権利テーブルに保存されます。
例:トークン、モデル、権利による承認受信トークン @Override public void action(){ String email = this.message.json.get("email").toString(); String password = this.message.json.get("password").toString(); Users users = new Users(); boolean isAuth = users.authorization(email,password); String outString; if(isAuth){ String token = users.getToken(); int userId = users.id; String ip = this.message.ip;
1.権利は、期待される変数を示します:電子メール、パスワード。
2.ユーザーモデルを作成し、認証方法を呼び出します。
3.セッションモデルを作成します-トークンを取得します。
4.回答を送信します。
5.トークンはクライアントに保存されます。
権限を確認し、特定のIPにメッセージを送信する例 @Override public void action(){ System.out.println("user_id: " + webUser.id + " email: " + webUser.email + " rights: "+ webUser.rights); Session session = new Session(); session.findByUserID(12); String ip = session.ip;
1.権限でユーザーを指定します。
2.予想されるトークン変数
トークンと「ゲストではない」権限でタスクを呼び出した後。 ユーザーはセッションテーブルのデータベースで検索され、ユーザーモデルはuser_idによって作成されます。これは、webUser変数のタスクで使用できます。
Sessionのuser_idまたはJConnectionsクラスの接続により、すべてのクライアントにメッセージを送信できます。
登録の例は、tasks.JRegistrationTaskクラスにあります。 すべてのテストは/ tests /フォルダーにあります。 より詳細な例については、メッセージの冒頭にあるリンクを参照してください。
UPD:フレームワークの更新、バグ修正、新機能の追加
UPD:チュートリアルの作成を開始しました:
jsock-framework-tutorial.blogspot.com/2019/02/jsock-framework.html