Patrón de observador sobre HTTP y TCP / IP (servidor-cliente)


9

Tengo un servidor y muchos clientes (alrededor de 50 clientes) que se conectan a ese servidor en función de una aplicación web, que por supuesto se basa en el protocolo HTTP, que a su vez utiliza TCP / IP (corríjame si me equivoco, porque yo No soy realmente bueno en redes).

El problema es que debería desarrollar un mecanismo de alerta, en el que, cuando alguien envía un formulario con valores peligrosos, el administrador (que también está conectado a través de la misma aplicación web) debería recibir una ventana emergente de alerta en su pantalla, casi real -tiempo (al instante).

Sin embargo, dado que el protocolo HTTP no tiene estado, estoy un poco confundido aquí. No sé cómo puedo implementar esto.

Una de las soluciones podría ser utilizar JavaScript junto con la setInterval()función para extraer datos cada segundo del servidor. Pero esto me parece un poco sucio y poco profesional.

¿Tienen alguna idea de implementar otra solución?


Esta publicación puede ayudar a stackoverflow.com/questions/640488/…
NoChance el

¿Qué tipo de clientes? ¿Clientes delgados (basados ​​en navegador) o clientes pesados?
ysdx

@ysdx, piensa en los clientes. Clientes con soporte de navegador solamente.
Saeed Neamati

Respuestas:


4

Debería usar algún tipo de inserción ajax (ver Cometa ) para notificar a los clientes. Puede eliminar la necesidad de sondeo, básicamente mantiene abierta una conexión establecida que se puede utilizar para notificar al navegador de los eventos que ocurren. Sin embargo, esto no funciona con todos los navegadores. Usted recurre a "encuestas largas" en tales casos.


6

Creo que este es el tipo de razón por la que se crearon WebSockets . Si no necesita compatibilidad con navegadores más antiguos, puede usar esto en lugar de sondear. Probablemente debería usar el sondeo como alternativa de todos modos.

No estoy seguro de cuán estables son las especificaciones / implementaciones en estos días (no era muy estable no hace mucho tiempo). Parece que la última especificación se implementa en Firefox 6 y Chromium 14.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.