Sobes.tech
Senior

хусусиятҳои протоколи DDP чист?

sobes.tech AI

Ҷавоб аз AI

DDP (Протоколи тақсимшудаи маълумот) протоколест, ки дар Meteor (рамзӣ барои таҳияи веб ва мобилӣ) барои алоқаи байни мизоҷ ва сервер истифода мешавад.

Хусусиятҳои асосӣ:

  • Публикация/Обуна: Сервер "мӯътадил" маълумотҳоро (коллексияҳои ҳуҷҷатҳо) "публику мекунад", ва мизоҷон ба публикацияҳое, ки онҳоро ҷолиб мекунанд, "обуна" мешаванд. Вақте ки маълумот дар сервер тағйир меёбад, онҳо автоматӣ ба ҳама мизоҷони обунашуда фиристода мешаванд.
  • Дар вақти воқеӣ: Тағйиротҳои маълумот фавран интиқол дода мешаванд, ки ба навсозии маълумот дар мизоҷ кӯмак мерасонад.
  • Зангҳои дур аз равандиҳо (RPC): Мизоҷон метавонанд методҳоро дар сервер даъват кунанд барои иҷрои амалҳои мушаххас.
  • Идempotентии зангҳо: Такрори занг ба ҳамон метод бо ҳамон аргументҳо таъсири тарафҳои номувофиқро намеборад (барои аксари методҳои стандартӣ).
  • Транспорт: Аксар вақт WebSocket барои пайвасти дуҷонибаи доимӣ истифода мешавад, аммо метавонад ба HTTP fallback кунад.
  • Маълумот: Тасҳеҳоти маълумот дар формат JSON мегузарад.
  • Фиристодани маълумот танҳо дар ҳолати зарурӣ: Сервер танҳо маълумотҳоро мефиристад, ки ба онҳо обуна шудааст, ва танҳо дар ҳолати тағйирот.
  • Кори офлайн: Meteor имкон медиҳад, ки мизоҷон тағйиротҳоро дар маълумотҳо дар маҳал нигоҳ доранд ва онҳоро бо сервер ҳамоҳанг кунанд вақте ки пайвастагӣ барқарор мешавад.
// Намунаи нашр дар сервер (Node.js)
Meteor.publish('myCollection', function() {
  return MyCollection.find({}); // Ҳама ҳуҷҷатҳоро аз коллексия нашр мекунад
});

// Намунаи обуна дар мизоҷ (JavaScript)
Meteor.subscribe('myCollection');
// Намунаи даъвати метод дар мизоҷ (JavaScript)
Meteor.call('addDocument', { name: 'Ҳуҷҷати нав' }, function(error, result) {
  if (error) {
    console.error("Хатогӣ дар илова кардани ҳуҷҷат:", error);
  } else {
    console.log("Ҳуҷҷат бо муваффақият илова шуд:", result);
  }
});

// Намунаи татбиқи метод дар сервер (Node.js)
Meteor.methods({
  addDocument: function(doc) {
    // Санҷиш ва ворид кардани ҳуҷҷат
    return MyCollection.insert(doc);
  }
});