UpdateMode dans le protocole DataSet

· Fonctionnalités

Le sous-protocole Dataset de sgcWebSockets permet de diffuser les modifications de base de données à tous les clients connectés. Depuis sgcWebSockets 4.3.8, ce protocole propose 2 modes de mise à jour :

1. Replicate Table : le protocole met à jour les clients dataset lorsqu'un dataset a changé.

2. Notify Updates : le protocole notifie les clients lorsqu'un dataset a changé. 

Réplication de table 

Ce mode tente de résoudre un scénario courant où une table est répliquée sur tous les clients connectés. Par exemple, si tu as un serveur avec une table de cotations boursières et que tu veux diffuser les changements de cours à tous les clients, mais sans qu'un client puisse se connecter à ta base de données : ainsi, chaque fois qu'il y a un changement sur une cotation, l'information de l'enregistrement sera diffusée à tous les clients connectés. Chaque client lit l'enregistrement et met à jour sa propre table.

Tu peux consulter le dossier Demos, démo SQLLite/MultipleDatabase.

Configurer le serveur Dataset

Crée un nouveau Dataset Server protocol et configure-le en utilisant les propriétés suivantes :

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; 

 Configurer le client Dataset

Crée un nouveau Dataset Client protocol et configure-le en utilisant les propriétés suivantes :

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; 

Notification des mises à jour 

Ce mode tente de résoudre un scénario où le serveur et les clients partagent une base de données unique (le serveur et les clients sont connectés à la même base de données physique) et où les clients veulent être notifiés à chaque fois qu'un autre client effectue un changement sur un dataset.

Tu peux consulter le dossier Demos, démo SQLLite/SingleDatabase.

Configurer le serveur Dataset

Crée un nouveau Dataset Server protocol et configure-le en utilisant les propriétés suivantes :

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; 

Configurer le client Dataset

Crée un nouveau Dataset Client protocol et configure-le en utilisant les propriétés suivantes :

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;