Socket de Integración con Hub IoT Nidoo
Esta es una aplicación basada en WebSocket común, para su funcionamiento se debe pasar un apikey designado a cada cliente.
Activación
Antes de poder hacer cualquier funcionalidad se debe activar el router, si no se hace cualquier solicitud que valla hacia la Api será denegada, para realizar la activación se debe consumir el siguiente endpoint http://localhost:8070/v1/system/init/{lot}
Objeto base de todas las peticiones:
{
"type": "...", // Nombre de evento
"data": {
... // Información para el evento
}
}
Eventos
{
"type": "init_connect_static",
"data": {
"idn": "apikey"
}
}
Entrada
Consulta el ingreso al parqueadero.
idn : Identificación del cliente en todo el proceso, esta identificación se debe usar en todas las peticiones hacia el socket.
Ejemplo ...
- Response:
{
"type": "entrada",
"data": {
"idn": "apiKey",
"plate": "bhn123",
"origin": "operario",
"start_service_type": "carro",
"start_date": "2020-11-16 13:11:00"
}
}
Salida
Procesa la salida del parqueadero.
- idn : Identificación del cliente en todo el proceso, esta identificación se debe usar en todas las peticiones hacia el socket. Tipo ( String )
- plate : Placa del vehículo. Tipo ( String )
- end_date : Fecha y hora de salida ( String )
Ejemplo ...
Request:
{
"type": "salida",
"data": {
"idn": "apiKey",
"process": 1,
"plate": "bhn123",
"end_date": "2020-11-16 13:11:00",
"price": 1000,
}
}
Response:
{
"type": "salida",
"data": {
"idn": "apiKey",
"plate": "bhn123",
"price": 1000
}
}
Authorize
Autoriza o niega la salida del parqueadero.
- idn : Identificación del cliente en todo el proceso, esta identificación se debe usar en todas las peticiones hacia el socket. Tipo ( String )
- authorization : Estado de la autorización. Tipo ( Boolean )
Ejemplo...
{
"type": "authorize",
"data": {
"idn": "apiKey",
"authorization": true
}
}
Ejemplo
Este ejemplo esta escrito en Javascript.
'use strict'
var WebSocket = require('ws');
var ws = new WebSocket('ws://localhost:8999', "protocolOne");
ws.onerror = (error) => {
console.info("Error al comunicar con el Websocket", error);
}
ws.onopen = (event) => {
console.info('conectado');
// Envio de conexión inicial
ws.send(JSON.stringify({
type: 'init_connect_static',
data: {
idn: 'apiKey',
}
}));
}
ws.onclose = (socket) => {
console.info("cerrado")
}
ws.onmessage = (event) => {
if (event.data) {
let obj = JSON.parse(event.data);
console.info("mensaje", obj)
switch (obj.type) {
case 'entrada':
console.info("entrada", obj.data);
break;
case 'salida':
console.info("salida", obj.data);
break;
}
}
}