私は、プレーヤーのアカウント/状態がサーバーに同期されているゲーム/アプリケーションを実装しています。私はエンティティのネストされたオブジェクトの変更を伝える一般的なフレームワーク(エンティティはユーザーのアカウントです)を検討しています。クライアントとサーバの両方がJavaで記述されている計算/反映についての議論について考えてみましょう(実際には、クライアントはプロパティを動的に変更できるActionscriptにあります)。変更をネストされたオブジェクトに伝播するパターン
とりあえず、Firebaseとします。
Service: PersistenceService
Action: modifiedObjects
Body:
Objects [{"/full/Path/To/Object/1","newValue"},{"/full/Path/to/Object/2","newValue"}]
ご入力のための私の要求は以下の通りです::ルートオブジェクト(Firebaseオブジェクト)の任意のオブジェクトへの変更は、おそらくのようなものに見える要求に伝播される)
1 /訂正してください。オブジェクトのツリーへの変更を伝播するためのこの一般的なフレームワークの実装に関する以下の考えを増強することができます。送信側では
、すべてのオブジェクトのいずれかのように思われる。)
1)は、それがルートエンティティ
2からのフルパスです保存するために必要なすべてのネストされたオブジェクトのプロパティへの変更が行われる必要があります反射的
OR
同期は修正のために、現在のオブジェクトツリーに最後の要求からエンティティの保存されたオブジェクトツリーを比較し、強制する必要があります。
サーバ側では、1回のリクエストで複数回アクセスされるオブジェクトをキャッシュするためにオブジェクトのパスを分析し、参照/検索コレクションによってツリーに複数回アクセスしないようにすることができます。
関連しません。これは、前述のようにネストされたオブジェクトのデータを通信する形式ではなく、データをいつ、どのように通信するかのパターンです。 – MetaChrome