DDP (Distributed Data Protocol) — это протокол, используемый в Meteor.js для синхронизации данных между клиентом и сервером в реальном времени.
- Публикация-подписка (Pub/Sub): Сервер "публикует" коллекции данных, а клиенты могут "подписываться" на них. При изменении данных на сервере, они автоматически "пушатся" на подписанные клиенты.
- RPC (Remote Procedure Call): Клиенты могут вызывать функции, определенные на сервере, как если бы они были локальными.
- Оптимистический UI: Клиент может сразу же отображать изменения в пользовательском интерфейсе, как будто они уже произошли на сервере. При возникновении конфликтов или ошибок, UI откатывается к предыдущему состоянию.
- Stateful: DDP поддерживает состояние соединения между клиентом и сервером, что позволяет в реальном времени синхронизировать данные.
- Использует WebSockets: Обычно работает поверх WebSockets для эффективного обмена данными в реальном времени, но может также использовать другие механизмы, если WebSockets недоступны.
- JSON-формат: Данные передаются в формате JSON.
Пример вызова RPC-метода на клиенте:
javascript