Interested Article - Distributed Data Protocol
- 2020-10-30
- 1
Distributed Data Protocol или DDP (протокол распределенных данных) - протокол клиент-серверного взаимодействия, созданный для использования инфраструктурой JavaScript веб-платформы Meteor и использующий в качестве обмена сообщениями шаблон « издатель — подписчик ».
Спецификация DDP находится в открытом доступе на GitHub
Основные механизмы протокола
Установка соединения
-
Клиент отправляет сообщение
connect
. -
Если сервер поддерживает версию протокола, переданную в сообщении
connect
, клиенту отправляется сообщениеconnected
. -
Иначе, сервер отправляет сообщение
failed
с указанием поддерживаемой версией протокола DDP.
Ping-Pong
В любое время после установки соединения одна из сторон может отправить сообщение
ping
. Получив сообщение, вторая сторона должна ответить
pong
.
Работа с данными
-
Клиентское приложение отправляет на сервер сообщение
sub
, содержащее интересующую его информацию. -
В любое время (чаще всего ответом на
sub
) сервер может отправить клиенту данные с одним из трех типов:-
added
означает, что данные были добавлены. -
changed
показывает, что некоторые поля были изменены, или удалены. -
removed
- данные были удалены
-
Удаленные вызовы процедур
-
Клиент отправляет на сервер сообщение
method
с названием процедуры и параметрами -
Сервер в ответ посылает сообщение
result
, содержащее результат выполнения процедуры или описание ошибки. -
Вызов процедуры может влиять на данные, на которые подписаны клиенты. В таком случае, после отправки клиентам результатов выполнения процедуры, сервер должен отправить клиентам сообщение
updated
с указаниемid
измененных данных.
Поддерживаемые методы передачи данных
Стандартным способом передачи данных через DDP является передача EJSON через веб-сокеты . Вторым вариантом является использование Long Poll.
В случае, если браузер не поддерживает веб-сокеты , передача данных будет осуществляться с использованием Long Poll.
Примечания
- (англ.) . — 2016-12-20. 2 октября 2019 года.
- 2020-10-30
- 1