UpdateMode in DataSet-protocol

· Functies

Met het sgcWebSockets Dataset-subprotocol kun je databasewijzigingen broadcasten naar alle verbonden clients. Vanaf sgcWebSockets 4.3.8 ondersteunt dit protocol 2 update-modi:

1. Replicate Table: protocol werkt dataset-clients bij wanneer een dataset is gewijzigd.

2. Notify Updates: protocol meldt clients wanneer een dataset is gewijzigd. 

Replicate Table 

Deze modus probeert een veelvoorkomend scenario op te lossen waarin een tabel wordt gerepliceerd voor alle verbonden clients, voorbeeld: als je een server hebt met een tabel met aandelenkoersen, wil je koerswijzigingen broadcasten naar alle clients, maar wil je niet dat een client verbinding kan maken met je database. Dus telkens wanneer er een wijziging is in een aandelenkoers, wordt de recordinformatie gebroadcast naar alle verbonden clients. Elke client leest het record en werkt zijn eigen tabel bij.

Je kunt in de Demos-map de SQLLite/MultipleDatabase-demo bekijken.

Dataset-server configureren

Maak een nieuwe Dataset Protocol Server aan en configureer deze met de volgende eigenschappen

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-client configureren

Maak een nieuwe Dataset Protocol Client aan en configureer deze met de volgende eigenschappen

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; 

Notify Updates 

Deze modus probeert een scenario op te lossen waarin server en clients één enkele database delen (server en clients zijn verbonden met dezelfde fysieke database) en clients willen worden geïnformeerd telkens wanneer een andere client een wijziging heeft uitgevoerd op een dataset.

Je kunt in de Demos-map de SQLLite/SingleDatabase-demo bekijken.

Dataset-server configureren

Maak een nieuwe Dataset Protocol Server aan en configureer deze met de volgende eigenschappen

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-client configureren

Maak een nieuwe Dataset Protocol Client aan en configureer deze met de volgende eigenschappen

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;