Senior
Care sunt caracteristicile protocolului DDP?
sobes.tech AI
Răspuns de la AI
DDP (Protocolul de Date Distribuite) este un protocol utilizat în Meteor (framework pentru dezvoltarea web și mobilă) pentru comunicarea între client și server.
Caracteristici principale:
- Publicare/Abonare: Serverul "publică" date (colecții de documente), iar clienții se "abonează" la publicațiile care îi interesează. Când datele de pe server se schimbă, acestea sunt trimise automat tuturor clienților abonați.
- În timp real: Modificările datelor sunt transmise instantaneu, asigurând actualitatea informațiilor pe client.
- Apeluri de proceduri la distanță (RPC): Clienții pot apela metode pe server pentru a realiza acțiuni specifice.
- Idempotentă a apelurilor: Repetarea aceluiași apel cu aceiași argumente nu duce la efecte secundare nedorite (pentru majoritatea metodelor standard).
- Transport: De obicei se folosește WebSocket pentru o conexiune bidirecțională permanentă, dar poate fallbacka pe HTTP.
- Date: Transmiterea datelor se face în format JSON.
- Transmiterea datelor doar dacă este necesar: Serverul trimite clientului doar datele la care acesta s-a abonat, și doar când acestea se schimbă.
- Lucru offline: Meteor permite clienților să salveze temporar modificările în date local și să le sincronizeze cu serverul la restabilirea conexiunii.
// Exemplu de publicare pe server (Node.js)
Meteor.publish('myCollection', function() {
return MyCollection.find({}); // Publică toate documentele din colecție
});
// Exemplu de abonare pe client (JavaScript)
Meteor.subscribe('myCollection');
// Exemplu de apelare a unei metode pe client (JavaScript)
Meteor.call('addDocument', { name: 'Document nou' }, function(error, result) {
if (error) {
console.error("Eroare la adăugarea documentului:", error);
} else {
console.log("Document adăugat cu succes:", result);
}
});
// Exemplu de implementare a metodei pe server (Node.js)
Meteor.methods({
addDocument: function(doc) {
// Validare și inserare document
return MyCollection.insert(doc);
}
});