sgcWebSockets Dataset Alt protokolü, veritabanı değişikliklerini bağlı tüm istemcilere yayınlamaya olanak tanır. sgcWebSockets 4.3.8 sürümünden itibaren bu protokol 2 güncelleme moduna izin verir:
1. Replicate Table: bir veri kümesi değiştiğinde protokol veri kümesi istemcilerini günceller.
2. Notify Updates: bir veri kümesi değiştiğinde protokol istemcileri bilgilendirir.
Replicate Table
Bu mod, bağlı tüm istemciler için bir tablonun çoğaltıldığı yaygın bir senaryoyu çözmeye çalışır. Örneğin, bir hisse fiyatları tablosu bulunan bir sunucunuz varsa, hisse değişikliklerini tüm istemcilere yayınlamak istersiniz, ancak bir istemcinin veritabanınıza bağlanabilmesini istemezsiniz. Bu nedenle, herhangi bir hisse fiyatında bir değişiklik olduğunda, kayıt bilgileri bağlı tüm istemcilere yayınlanır. Her istemci kaydı okur ve kendi tablosunu günceller.
Demos klasöründeki SQLLite/MultipleDatabase demosunu inceleyebilirsiniz.
Dataset Sunucusunu Yapılandırma
Yeni bir Dataset Protokol Sunucusu oluşturun ve aşağıdaki özellikleri kullanarak yapılandırın
- ApplyUpdates: True olarak ayarlayın; her değişiklik olduğunda bu, istemcilere yayınlanır
- AutoSynchronize: True olarak ayarlayın; her yeni istemci sunucuya bağlandığında, sunucu tüm kayıtları (meta veri ve veri) gönderir, böylece istemci sunucudan en son bilgileri alır.
- UpdateMode: upWhereAll veya upWhereChanged olarak ayarlayın. Fark şudur: ilki bir kaydın tüm alanlarını gönderir, ikincisi ise yalnızca bir güncellemede değişen alanları gönderir.
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 İstemcisini Yapılandırma
Yeni bir Dataset Protokol İstemcisi oluşturun ve aşağıdaki özellikleri kullanarak yapılandırın
- ApplyUpdates: True olarak ayarlayın; her değişiklik olduğunda bu, sunucuya gönderilir.
- AutoSubscribe: True olarak ayarlayın; her yeni istemci sunucuya bağlandığında, istemci güncelleme, silme ve yeni kayda otomatik olarak abone olur.
- UpdateMode: upWhereAll veya upWhereChanged olarak ayarlayın. Fark şudur: ilki bir kaydın tüm alanlarını gönderir, ikincisi ise yalnızca bir güncellemede değişen alanları gönderir.
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
Bu mod, sunucu ve istemcilerin tek bir veritabanını paylaştığı (sunucu ve istemciler aynı fiziksel veritabanına bağlı) ve istemcilerin, başka bir istemci bir veri kümesinde her değişiklik yaptığında bilgilendirilmek istediği bir senaryoyu çözmeye çalışır.
Demos klasöründeki SQLLite/SingleDatabase demosunu inceleyebilirsiniz.
Dataset Sunucusunu YapılandırmaYeni bir Dataset Protokol Sunucusu oluşturun ve aşağıdaki özellikleri kullanarak yapılandırın
- ApplyUpdates: True olarak ayarlayın; her değişiklik olduğunda bu, istemcilere yayınlanır
- AutoSynchronize: False olarak ayarlayın; burada true olarak ayarlamaya gerek yoktur, çünkü istemci sunucuyla aynı veritabanına bağlıdır.
- UpdateMode: upRefreshAll olarak ayarlayın.
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;
Configure Dataset Client
Yeni bir Dataset Protokol İstemcisi oluşturun ve aşağıdaki özellikleri kullanarak yapılandırın
- ApplyUpdates: True olarak ayarlayın; her değişiklik olduğunda bu, sunucuya gönderilir.
- AutoSubscribe: True olarak ayarlayın; her yeni istemci sunucuya bağlandığında, istemci güncelleme, silme ve yeni kayda otomatik olarak abone olur.
- UpdateMode: upRefreshAll olarak ayarlayın.
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;