No debe considerar las API REST como lo último para todas sus necesidades. Puede considerar sockets, udp, etc. si necesita una conexión persistente.
Aún así, si va a REST, los latidos del corazón no violan las pautas de REST. Cada latido / ping extendería el estado del cliente a en línea durante otro minuto (se puede disminuir para administrar la carga) más o menos. Además, entienda qué significa sin estado El servicio web es con estado o sin estado: ¿DESCANSO, JABÓN? – GopalDas.Org
Si las sesiones se almacenan en la memoria de un servicio web, el servicio no es apátrida, escalable ni REST ya que cada punto final puede tener una respuesta diferente. En este caso, sin embargo, esto se puede traducir ya que la API heartbeat siempre devuelve 200 cuando actualiza el estado del cliente. y la API de estado del cliente siempre devuelve 200 para cualquier estado (en línea, ausente, fuera de línea). A diferencia de un sistema de transacciones en un banco en el que una API de transacción no Restful puede devolver 200,400,500 dependiendo de cuál sea el estado del cliente (conectado, visto por última vez, fuera de línea).
- ¿Scala tiene un futuro brillante en la India? ¿Vale la pena cambiar a scala desde Java?
- ¿Cuáles son diez ejemplos de software de aplicación?
- ¿Cómo verifica Facebook si hay nuevas notificaciones?
- ¿Cuál es el lenguaje más importante para desarrollar software de computadora?
- ¿Cómo se hacen amigos los ingenieros con los diseñadores de arte?
Y así sucesivamente, cualquier punto final de la API en un servicio Restful nunca debe devolver ningún código, excepto 200, dependiendo del estado del cliente en línea y fuera de línea.
La escalabilidad tiene muy poco que ver con los latidos del corazón y depende de dónde esté almacenado el estado del cliente. Actualizar registros sql o mongo es costoso para algo como esto. Considere usar redis o memcache.
El sondeo o la característica que está implementando generalmente se debe considerar por encima de la carga promedio en un servidor web La arquitectura de WhatsApp Facebook compró por $ 19 mil millones – Alta escalabilidad –
Hay otras formas de hacerlo, pero depende de su cliente. Si puede confiar en que el cliente enviará una solicitud de CC, puede usarlos para actualizar el estado del cliente y dejar de sondear / latidos.
Puede haber algunas formas inteligentes de usar HTTP Cache que podrían servir como caché liviano, eliminando la necesidad de redis o caché de memoria interna.
Nota: Los enchufes también envían latidos internos.