Continuando con la serie técnica Sync Gateway, veremos específicamente cómo configurar la función Sync mediante el uso de Canales para ejecutar la orquestación de datos. En el siguiente vídeo nos acompañan Chris Anderson que repasará un ejemplo sobre cómo realizar el enrutamiento de datos. Hemos hablado de los controles de acceso anteriormente y Canales proporcionar acceso de lectura a los usuarios entre el cliente móvil y la base de datos remota. El ejemplo es tomar preguntas de Stackoverflow y cargarlas en Sync Gateway donde sólo preguntas específicas y por lo tanto etiquetas específicas de temas que el usuario está interesado serán sincronizadas. A partir de las etiquetas, se pueden generar los nombres de los canales. Así es como los subconjuntos de datos se sincronizan con el móvil en función del interés del usuario.
Canales
Las etiquetas se utilizan como la clave de tipo de documento y es una forma de control de accesibilidad en documentos específicos en la base de datos. Cómo se hace esto es el uso de una función de JavaScript que se construye dentro de Sync Gateway donde somos capaces de tener cada documento viene a través de la ruta y el documento al canal en particular que pertenecen. Podemos pasar la matriz de etiquetas a la función de canal para crear los nombres de los canales de forma dinámica.
1 2 3 4 5 6 7 8 9 10 |
{ ... "etiquetas" : [ "android", "java", "nosql", "couchbase" ], ... } |
El archivo de configuración JSON de la puerta de enlace de sincronización incluirá la función de sincronización en la que la matriz de etiquetas se pasa a la función de canal.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{ "log" : ["REST"], "bases de datos" : { "db": { "servidor" : "morsa:" "usuarios": {"INVITADO" : {"desactivado" : falso, "admin_canales": ["*"] }}, "sync" : función(doc) { canal(doc.etiquetas); } } } } |
En la consola de administración de Couchbase, se muestra el canal de diferentes etiquetas con el contenido respectivo que se captura. Esta consola ayuda a desarrollar la lógica de tu función de sincronización y a recopilar la información relevante que intentas definir.
Replicación
A continuación, un cliente móvil puede sincronizar el contenido pertinente del usuario mediante el uso de Couchbase Lite integrado. replicación API. A continuación se muestra un ejemplo de código Objective-C que se ocupa de configurar el interés temático del usuario en el lado del cliente para extraer datos relevantes. El replicador sabrá entonces cómo interactuar con los datos desde dentro de los canales. Primero creamos una replicación Pull
1 2 3 4 |
CBLReplicación *tire de = [base de datos createPullReplication: url]; tire de.canales = @[@"android", @"java", @"nosql"]; [tire de iniciar]; |
El replicador interactuará con los nombres de los canales específicos para bajar los datos a los dispositivos móviles. Si no se establecen los canales específicos, todos los datos existentes se extraerán de Sync Gateway. Aquí es donde también podemos tener una experiencia asíncrona para los usuarios que no están conectados. Cuando la conexión esté disponible, se reanudará la sincronización de los nuevos datos de esas etiquetas de canal.
La forma de hacerlo es a través de la API de alimentación de cambios, db/_cambios de Sync Gateway, donde el feed se compone de metadatos de estos documentos. El sitio identificador de revisión El cliente utiliza _rev para omitir la extracción de documentos de versiones concretas que ya tiene, de modo que permite una reconexión eficaz. Lo que impulsa la sincronización es el número de secuencia, que el cliente utiliza para indicar a Sync Gateway en qué secuencia concreta debe reanudar la búsqueda de nuevos contenidos. El "última_seq" es un número entero que representa el último cambio que el cliente ha sincronizado.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
{ ... - { seq: 116, id:"123123kj12h310193", - cambia: [ - { rev: "1-12313124324" } ] }, - { seq: 117, id:"191123kj12h310193", - cambia: [ - { rev: "1-12398124378" } ] } ], última_seq: "117" } |
Desde la serie de blogs Sync Gateway, podemos validar tipos de documentos además de proporcionar seguridad mediante autorización de usuarios en sync gateway. Para obtener más información sobre cómo desarrollar y solucionar problemas de canales en Sync Gateway, asegúrese de leer el artículo guías de formación para más información.