Internet Information Server - Cambio en la conexión con el servidor

 
Vista:
sin imagen de perfil
Val: 1
Ha mantenido su posición en Internet Information Server (en relación al último mes)
Gráfica de Internet Information Server

Cambio en la conexión con el servidor

Publicado por Juan (1 intervención) el 11/10/2019 14:04:06
Hola muy buenas, les comento:

tengo 3 cosas: Servidor, appWeb y Dispositivo Iot.

el servidor es una api restfull - a la cual se conecta la appWeb y el dispositivo mediante el método post. la appWeb no tiene ningún problema. el problema esta en el dispositivo.

problema: El dispositivo tiene que tener la capacidad de actualizar datos al momento (o al menos lo antes posible) para realizar una acción, este tipo de servidores de peticiones http no los conozco bien, por lo que ahora mismo hago peticiones post cada minuto, lo cual dispara el consumo de datos (usa una tarjeta telefónica el dispositivo) de una manera exagerada y sigue sin tener cambios al instante, dado que puede tardar 59 segundos en empezar a realizar la acción.

mi consulta: a través de este tipo de servidores http, es posible establecer una comunicación entre mi dispositivo y el servidor, la cual no se pierda, y el servidor me avise de cuando se a efectuado un cambio sin que tenga que estar pidiendo los datos el dispositivo cada minuto? o sea que si no hay cambios en 24 horas que no haya comunicación entre mi dispositivo y el servidor, y si hago un cambio el servidor le avise al dispositivo para que descargue los nuevos datos. esto es posible con servidores api restfull? o es necesario modificar el servidor?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Wendy

Cambio en la conexión con el servidor

Publicado por Wendy (2 intervenciones) el 25/06/2024 15:35:07
Para resolver el problema que tienes con la comunicación entre tu dispositivo IoT y el servidor, hay varias estrategias y tecnologías que puedes considerar. Lo que buscas es evitar el polling frecuente y, en su lugar, implementar un sistema donde el servidor notifique al dispositivo cuando hay cambios. Aquí te presento algunas opciones:

1. WebSockets
Los WebSockets https://parissportifs-congo.com/les-conseils-pour-ceux-qui-veulent-telecharger-application-pmu-rdc/ permiten una comunicación bidireccional y persistente entre el servidor y el cliente. Esto es útil para tu caso porque el servidor puede enviar actualizaciones al dispositivo en tiempo real sin necesidad de que el dispositivo haga peticiones repetitivas.

Ventajas:

Comunicación en tiempo real.
Menor uso de datos en comparación con el polling constante.
Desventajas:

No todos los dispositivos IoT tienen soporte nativo para WebSockets.
Puede ser más complejo de implementar si nunca has trabajado con WebSockets antes.
2. MQTT (Message Queuing Telemetry Transport)
MQTT es un protocolo ligero de mensajería ideal para dispositivos IoT. Funciona con un modelo de publicación/suscripción, donde los dispositivos se suscriben a "temas" y reciben actualizaciones cuando hay mensajes nuevos en esos temas.

Ventajas:

Optimizado para redes con ancho de banda limitado y dispositivos con recursos limitados.
Bajo consumo de datos.
Soporte para calidad de servicio (QoS) y persistencia de mensajes.
Desventajas:

Necesitas un broker MQTT (como Mosquitto).
Puede requerir más configuración inicial y cambios en tu infraestructura actual.
3. HTTP Long Polling
El long polling es una técnica donde el cliente hace una petición HTTP al servidor, y el servidor mantiene la conexión abierta hasta que hay nueva información para enviar. Una vez que el servidor envía los datos, el cliente inmediatamente vuelve a hacer una nueva petición, y así sucesivamente.

Ventajas:

Más fácil de implementar que WebSockets o MQTT si ya estás usando HTTP.
No requiere cambios significativos en el servidor RESTful.
Desventajas:

Aunque es más eficiente que el polling regular, aún consume más recursos y datos que WebSockets o MQTT.
La implementación puede ser más compleja que el polling regular.
4. Push Notifications
Si tu dispositivo IoT puede recibir notificaciones push, puedes configurar el servidor para enviar una notificación al dispositivo cuando hay un cambio. El dispositivo, al recibir la notificación, puede entonces hacer una petición al servidor para obtener los nuevos datos.

Ventajas:

Eficiente en términos de uso de datos.
Los dispositivos móviles y algunos dispositivos IoT pueden manejar notificaciones push muy bien.
Desventajas:

Requiere que tu dispositivo soporte notificaciones push.
Puede necesitar una configuración adicional (por ejemplo, usar servicios como Firebase Cloud Messaging).
Implementación con WebSockets (Ejemplo)
Para implementar WebSockets, necesitas tanto soporte en el servidor como en el dispositivo. Aquí hay un ejemplo básico de cómo podrías hacerlo:

Servidor (Node.js con ws):

const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', function connection(ws) {
console.log('Client connected');

// Send a message to the client when there is a change
ws.send(JSON.stringify({ type: 'update', data: 'new data' }));

ws.on('message', function incoming(message) {
console.log('received: %s', message);
});

ws.on('close', () => {
console.log('Client disconnected');
});
});
Cliente (JavaScript para un dispositivo con soporte WebSocket):


const ws = new WebSocket('ws://yourserver:8080');

ws.onopen = () => {
console.log('Connected to server');
};

ws.onmessage = (event) => {
const message = JSON.parse(event.data);
if (message.type === 'update') {
console.log('Received update:', message.data);
// Handle the update
}
};

ws.onclose = () => {
console.log('Disconnected from server');
};

Este es un ejemplo simple y deberás adaptarlo a tu entorno y necesidades específicas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar