UpdateMode in DataSet Protocol

· Funktionen

Das sgcWebSockets-Dataset-Subprotokoll erlaubt es, Datenbankänderungen an alle verbundenen Clients zu broadcasten. Ab sgcWebSockets 4.3.8 unterstützt dieses Protokoll 2 Update-Modi:

1. Replicate Table: Das Protokoll aktualisiert Dataset-Clients, wenn sich ein Dataset geändert hat.

2. Notify Updates: Das Protokoll benachrichtigt Clients, wenn sich ein Dataset geändert hat. 

Replicate Table 

Dieser Modus löst ein verbreitetes Szenario, in dem eine Tabelle für alle verbundenen Clients repliziert wird. Beispiel: Hast du einen Server mit einer Tabelle mit Aktienkursen, willst du Aktien-Änderungen broadcasten an alle Clients, aber du willst nicht, dass sich ein Client direkt mit deiner Datenbank verbindet. Jedes Mal, wenn es eine Änderung bei einem Aktienkurs gibt, werden die Datensatz-Informationen an alle verbundenen Clients broadcastet. Jeder Client liest den Datensatz und aktualisiert seine eigene Tabelle.

Schau im Demos-Ordner ins Demo SQLLite/MultipleDatabase.

Dataset-Server konfigurieren

Erstelle einen neuen Dataset-Protocol-Server und konfiguriere ihn über die folgenden Eigenschaften

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 konfigurieren

Erstelle einen neuen Dataset-Protocol-Client und konfiguriere ihn über die folgenden Eigenschaften

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 

Dieser Modus löst ein Szenario, in dem sich Server und Clients eine einzige Datenbank teilen (Server und Clients sind mit derselben physischen Datenbank verbunden) und Clients benachrichtigt werden wollen, wenn ein anderer Client eine Änderung an einem Dataset vorgenommen hat.

Schau im Demos-Ordner ins Demo SQLLite/SingleDatabase.

Dataset-Server konfigurieren

Erstelle einen neuen Dataset-Protocol-Server und konfiguriere ihn über die folgenden Eigenschaften

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 konfigurieren

Erstelle einen neuen Dataset-Protocol-Client und konfiguriere ihn über die folgenden Eigenschaften

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;