2009-03-07 14 views
13

Quiero enviar datos al navegador a través de HTTP sin matar a mi aplicación django/python.Elegir y desplegar un servidor cometa

Decidí usar un servidor de cometas, para solicitudes de proxy entre mi aplicación y el cliente (aunque todavía no lo he descubierto correctamente).

He mirado en los siguientes motores: orbitado cometd ejabberd embarcadero

Alguien ha tenido alguna experiencia de trabajo con estos servidores y despliegue de ellos? Cualquier idea y enlace sobre los temas sería genial. Gracias.

Respuesta

5

recomendaría mirar en Twisted, su servidor twisted.web, y el trabajo realizado cometa en la parte superior de la misma en DIVMOD. Pueden manejar muchas más conexiones simultáneas que los servidores basados ​​en procesos o hilos tradicionales, que es exactamente lo que necesita para algo como esto. Y, sí, he diseñado sistemas que usan Twisted para COMET, mientras uso otras cosas para las aplicaciones web más frontales a su lado. Funciona bien con cada parte haciendo lo que mejor hace.

+0

Gracias por esta respuesta. He estado tratando de averiguar cómo combinar django/twisted cuando servidores separados es la respuesta correcta. – DonGar

2

Tengo que hacer algo muy similar. Me encontré con esto, pero no he tenido el tiempo para mirar correctamente sin embargo:

django_evserver es simple servidor http para aplicaciones de Django. Se basa en la biblioteca libevent . La principal ventaja de de django_evserver es que proporciona métodos para adelantar las vistas de django. Puede representar un sitio en varios fragmentos , cada uno de ellos puede ser manejado por vista django diferente.

Usando esta idea, es posible usar django_evserver como servidor de cometas para las aplicaciones django .

http://code.google.com/p/django-evserver/

+0

+1: Estoy realmente intrigado por evserver –

2

Si puede ejecutar Java, recomendaría StreamHub Comet Server.

En primer lugar, con respecto a su necesidad de no 'matar' a su aplicación existente, JavaScript incluye una huella realmente baja a menos de 10 K. Lo uso para impulsar actualizaciones de usuarios y conversar en el sitio de redes sociales que estoy creando. Probé con más de 1000 visitas al día y no hubo un efecto notable en la CPU.

En segundo lugar, en la implementación, seguí algunos de los ejemplos y estaba funcionando muy rápido en comparación con golpear mi cabeza contra la pared con CometD. Hay una buena guía de introducción de Comet Hello World y Google Group si te quedas atascado en algo.

+0

+1: StreamHub es el más fácil de usar y más maduro – DLauer

2

Una opción es Netty, marco de socket cliente-servidor basado en Java NIO de JBoss. Para una comparación y discusión see here. Según los informes, maneja 100000 conexiones simultáneas abiertas en un servidor quad-core.

2

Si está ejecutando IIS, puede consultar WebSync (http://www.frozenmountain.com/websync), un servidor de cometas compatible con los estándares (bayeux) y cliente para .NET/IIS. Si no desea la carga adicional, la versión bajo demanda es una opción SaaS que descarga el trabajo pesado.

2

Si usted está buscando para combinar Django con un servidor Comet (orbitaba), compruebe este proyecto he va a integrar Django y orbitaba en tan "limpia" y "mundo real" como sea posible aquí: http://github.com/clemesha/hotdot

El proyecto aborda problemas del "mundo real" como la seguridad y el registro/filtrado/modificación de los mensajes Comet en tránsito, etc., pero sigue siendo un trabajo en progreso.