Sobes.tech
Senior

Kokios yra DDP protokolo savybės?

sobes.tech AI

Atsakymas iš AI

DDP (Distributed Data Protocol) — tai protokolas, naudojamas Meteor (tinklo ir mobiliųjų programų kūrimo karkasas) ryšiui tarp kliento ir serverio:

Pagrindinės savybės:

  • Publikavimas/Prenumerata: Serveris "publikuoja" duomenis (dokumentų kolekcijas), o klientai "prenumeruoja" tuos, kurie juos domina. Duomenų pakeitimai automatiškai perduodami visiems prenumeruojantiems klientams:
  • Realaus laiko: Duomenų pakeitimai perduodami akimirksniu, užtikrinant aktualumą klientui:
  • Nuotolinės procedūros iškvietimai (RPC): Klientai gali iškviesti metodus serveryje, atlikdami tam tikrus veiksmus:
  • Idempotentiškumas: Pakartotinis metodo iškvietimas su tais pačiais argumentais nesukelia nepageidaujamų šalutinių efektų (daugeliui standartinių metodų):
  • Transportas: Paprastai naudojamas WebSocket nuolatinio dvipusio ryšio palaikymui, bet gali būti fallback į HTTP:
  • Duomenys: Duomenų perdavimas vyksta JSON formatu:
  • Duomenų siuntimas tik tada, kai reikia: Serveris siunčia klientui tik tuos duomenis, į kuriuos jis prenumeruoja, ir tik jų pakeitimo atveju:
  • Darbas neprisijungus: Meteor leidžia klientams laikinai saugoti duomenų pakeitimus vietiniame lygyje ir sinchronizuoti juos su serveriu atstatant ryšį:
// Pavyzdys publikacijos serveryje (Node.js)
Meteor.publish('myCollection', function() {
  return MyCollection.find({}); // Publikuojame visus dokumentus iš kolekcijos
});

// Prenumeratos pavyzdys kliente (JavaScript)
Meteor.subscribe('myCollection');
// Metodo iškvietimo pavyzdys kliente (JavaScript)
Meteor.call('addDocument', { name: 'Naujas dokumentas' }, function(error, result) {
  if (error) {
    console.error("Klaida pridedant dokumentą:", error);
  } else {
    console.log("Dokumentas sėkmingai pridėtas:", result);
  }
});

// Metodo realizacijos pavyzdys serveryje (Node.js)
Meteor.methods({
  addDocument: function(doc) {
    // Validacija ir dokumento įterpimas
    return MyCollection.insert(doc);
  }
});