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);
}
});