DataSet プロトコルの UpdateMode

· 機能

sgcWebSockets Dataset サブプロトコルは、接続されているすべてのクライアントにデータベースの変更をブロードキャストできます。sgcWebSockets 4.3.8 からは、このプロトコルで 2 つの更新モードが使用できます。

1. テーブルの複製:データセットが変更されたとき、クライアントのデータセットを更新します。

2. 更新の通知:データセットが変更されたとき、クライアントに通知します。 

テーブルの複製 

このモードは、接続されているすべてのクライアントにテーブルが複製される一般的なシナリオを解決します。たとえば、サーバーに株価テーブルがある場合、株価の変更をすべてのクライアントにブロードキャストしたいが、クライアントがデータベースに直接接続することは避けたいケースです。株価に変更があるたびにレコード情報がブロードキャストされ、接続中のすべてのクライアントに届きます。各クライアントはレコードを読み取り、自身のテーブルを更新します。

Demos フォルダーの SQLLite/MultipleDatabase デモを確認してください。

Dataset サーバーの設定

新しい Dataset Protocol サーバーを作成し、以下のプロパティを設定してください。

oServer := TsgcWebSocketServer.Create(nil);
oProtocolDataset := TsgcWSPServer_Dataset.Create(nil);
oProtocolDataset.Server := oServer;
oProtocolDataset.Dataset := <...your dataset..>;
oProtocolDataset.ApplyUpdates := true;
oProtocolDataset.AutoSynchronize := true;
oProtocolDataset.NotifyUpdates := true;
oProtocolDataset.UpdateMode := upWhereAll;
oServer.Port := 80;
oServer.Active := true; 

 Dataset クライアントの設定

新しい Dataset Protocol クライアントを作成し、以下のプロパティを設定してください。

oClient := TsgcWebSocketClient.Create(nil);
oProtocolDataset := TsgcWSPClient_Dataset.Create(nil);
oProtocolDataset.Client := oClient;
oProtocolDataset.Dataset := <...your dataset..>;
oProtocolDataset.ApplyUpdates := true;
oProtocolDataset.AutoSubscribe := true;
oProtocolDataset.NotifyUpdates := true;
oProtocolDataset.UpdateMode := upWhereAll;
oClient.Host := '127.0.0.1';
oClient.Port := 80;
oClient.Active := true; 

更新の通知 

このモードは、サーバークライアント単一のデータベース(同じ物理データベースに接続)を共有し、他のクライアントがデータセットに変更を加えるたびに通知を受けたいシナリオを解決します。

Demos フォルダーの SQLLite/SingleDatabase デモを確認してください。

Dataset サーバーの設定

新しい Dataset Protocol サーバーを作成し、以下のプロパティを設定してください。

oServer := TsgcWebSocketServer.Create(nil);
oProtocolDataset := TsgcWSPServer_Dataset.Create(nil);
oProtocolDataset.Server := oServer;
oProtocolDataset.Dataset := <...your dataset..>;
oProtocolDataset.ApplyUpdates := true;
oProtocolDataset.AutoSynchronize := false;
oProtocolDataset.NotifyUpdates := true;
oProtocolDataset.UpdateMode := upRefreshAll;
>oServer.Port := 80;
oServer.Active := true; 

Dataset クライアントの設定

新しい Dataset Protocol クライアントを作成し、以下のプロパティを設定してください。

oClient := TsgcWebSocketClient.Create(nil);
oProtocolDataset := TsgcWSPClient_Dataset.Create(nil);
oProtocolDataset.Client := oClient;
oProtocolDataset.Dataset := <...your dataset..>;
oProtocolDataset.ApplyUpdates := true;
oProtocolDataset.AutoSubscribe := true;
oProtocolDataset.NotifyUpdates := true;
oProtocolDataset.UpdateMode := upRefreshAll;
oClient.Host := '127.0.0.1';
oClient.Port := 80;
oClient.Active := true;