Sobes.tech
Senior

Jaké jsou vlastnosti protokolu DDP?

sobes.tech AI

Odpověď od AI

DDP (Protokol distribuovaných dat) je protokol používaný v Meteoru (framework pro vývoj webových a mobilních aplikací) pro komunikaci mezi klientem a serverem.

Hlavní vlastnosti:

  • Publikace/Odběr: Server "publikuje" data (kolekce dokumentů), a klienti se "přihlašují" k publikacím, které je zajímají. Při změnách dat na serveru jsou automaticky odesílána všem přihlášeným klientům.
  • V reálném čase: Změny dat jsou přenášeny okamžitě, což zajišťuje aktuálnost informací na klientovi.
  • Vzdálené volání procedur (RPC): Klienti mohou volat metody na serveru pro provádění specifických akcí.
  • Idempotence volání: Opakované volání stejné metody se stejnými argumenty nezpůsobí nežádoucí vedlejší efekty (pro většinu standardních metod).
  • Transport: Obvykle se používá WebSocket pro trvalé obousměrné spojení, ale může fallbackovat na HTTP.
  • Data: Přenos dat probíhá ve formátu JSON.
  • Odesílání dat pouze při potřebě: Server posílá klientovi pouze data, na která je přihlášen, a pouze při jejich změně.
  • Práce offline: Meteor umožňuje klientům dočasně ukládat změny v datech lokálně a synchronizovat je se serverem při obnovení spojení.
// Příklad publikace na serveru (Node.js)
Meteor.publish('myCollection', function() {
  return MyCollection.find({}); // Publikuje všechny dokumenty z kolekce
});

// Příklad odběru na klientovi (JavaScript)
Meteor.subscribe('myCollection');
// Příklad volání metody na klientovi (JavaScript)
Meteor.call('addDocument', { name: 'Nový dokument' }, function(error, result) {
  if (error) {
    console.error("Chyba při přidávání dokumentu:", error);
  } else {
    console.log("Dokument úspěšně přidán:", result);
  }
});

// Příklad implementace metody na serveru (Node.js)
Meteor.methods({
  addDocument: function(doc) {
    // Validace a vložení dokumentu
    return MyCollection.insert(doc);
  }
});