10.2.2. ハッシュベースの競合検出の実装
ハッシュベースの競合検出は、クライアントによって更新されているオブジェクト total に基づいて競合を検出するメカニズムです。これは、各オブジェクトをハッシュ化し、ハッシュを比較することによって行われます。これは、オブジェクトが同等であり、競合がないと見なすことができるかどうかをサーバーに通知します。
手順
@aerogear/voyager-conflicts パッケージをインポートします。
const { HashObjectState } = require('@aerogear/voyager-conflicts')const { HashObjectState } = require('@aerogear/voyager-conflicts')Copy to Clipboard Copied! Toggle word wrap Toggle overflow HashObjectState実装を使用する場合は、ハッシュ関数を提供する必要があります。関数のシグネチャは次のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow HashObjectStateをインスタンス化するときにこの関数を提供します。const conflictHandler = new HashObjectState(hashFunction)
const conflictHandler = new HashObjectState(hashFunction)Copy to Clipboard Copied! Toggle word wrap Toggle overflow リゾルバーを実装します。すべての競合は、次のような事前定義された一連の手順を使用して処理できます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
上記の例では、throw ステートメントにより、クライアントが競合クライアント側を解決するために必要なすべてのデータを確実に受信します。このデータの詳細は、Structure of the Conflict Error を参照してください。
競合はクライアントで解決されるため、データを保持する必要はありません。ただし、競合がない場合は、クライアントから送信されたデータを保持する必要があります。クライアント側の競合の解決の詳細は、Resolving Conflicts on the Client を参照してください。