Paso 3: Código del cliente
El cliente se cifra en NodeJS. Si desea saltar esta parte y a construir la misma rutina de demostración exacta como puede descargar el código en el repositorio de GitHub: https://github.com/hermanbanken/thomas-bot. Al construir su propia lógica este repositorio también puede contener ejemplos prácticos.
Arquitectura
Puesto que el servidor se escribirá en el meteorito, para acelerar el desarrollo, el Edison necesita conectarse a la api DDP del servidor. Es como un api REST, pero sólo es JSON y reactivo se actualiza en el cliente cuando cambian los datos en el servidor.
El punto de entrada del cliente es main.js. Habrá primero autenticarse en el servidor y ejecutar alguna rutina o espere instrucciones. Si ha copiado el código, necesitará ajustar el nombre de host o IP del servidor.
Se hace referencia a varias funciones separadas en main.js: la lógica para el acelerómetro (accel.js), el sensor de contacto (touch.js), una pantalla lcd opcional (lcd.js) y el sensor flex (flex.js) todos dividen a ficheros distintos.
Instalación
Instalar estos scripts y paquetes en ambas tarjetas de Edison moviendo el código allí usando el XDK o scp. Hemos encontrado que a veces el XDK no compila las dependencias correctamente en el equipo de desarrollo, por lo que es posible que necesita para copiar las fuentes y ejecute 'MNP instalar' en el Edison sí mismo. Esto es específicamente el caso de bluetooth diferentes bibliotecas que hemos probado.
Manejo de DDP
Una parte importante de los amiguetes es que puede recibir el niño necesita realizar ejercicios. Para ello definimos una "colección", un lugar para los documentos a publicarse. Con DDP suscribimos en nuevos mensajes en esta colección de bandeja de entrada:
En el servidor: Meteor.publish ("userInbox", function() {regresar Inbox.find ({userId: this.userId});})
Así que la bandeja de entrada más abajo contiene solamente los mensajes de usuario.
DDP.subscribe ('userInbox', []);
var taskObserver = ddp.observe("inbox");
taskObserver.added = {function(id)}
var mensaje = ddp.collections.inbox[id];
Console.log ("Hacer algo con", mensaje);
}