Protocolo de datos distribuidos
El Protocolo de datos distribuidos o DDP (Protocolo de datos distribuidos) es un protocolo de comunicación cliente-servidor diseñado para ser utilizado por el marco JavaScript de la plataforma web Meteor y que utiliza el patrón de publicación-suscripción como mensajería .
La especificación DDP está disponible públicamente en GitHub [1]
Mecanismos básicos del protocolo
Estableciendo una conexión
- El cliente envía un mensaje connect.
- Si el servidor admite la versión del protocolo que se pasa en el mensaje connect, se envía un mensaje al cliente connected.
- De lo contrario, el servidor envía un mensaje failedindicando la versión de DDP compatible.
Ping-Pong
En cualquier momento después de que se establezca la conexión, una de las partes puede enviar un mensaje ping. Al recibir el mensaje, el otro lado debe responder pong.
Trabajando con datos
- La aplicación cliente envía un mensaje al servidor subcon la información de su interés.
- En cualquier momento (la mayoría de las veces en respuesta a sub), el servidor puede enviar datos al cliente con uno de tres tipos:
- addedsignifica que los datos han sido agregados.
- changedindica que algunos campos han sido cambiados o eliminados.
- removed- los datos han sido borrados
Llamadas a procedimientos remotos
- El cliente envía un mensaje al servidor methodcon el nombre del procedimiento y los parámetros
- El servidor responde enviando un mensaje resultque contiene el resultado del procedimiento o una descripción del error.
- Una llamada de procedimiento puede afectar los datos a los que se suscriben los clientes. En este caso, después de enviar los resultados del procedimiento a los clientes, el servidor debe enviar un mensaje a los clientes updatedindicando los iddatos modificados.
Métodos de transferencia de datos admitidos
La forma estándar de transferir datos a través de DDP es transferir EJSON a través de Web Sockets . La segunda opción es usar Long Poll .
En caso de que el navegador no admita websockets , la transferencia de datos se realizará mediante Long Poll .
Notas
- ↑ Especificación DDP . — 2016-12-20. Archivado desde el original el 2 de octubre de 2019.