2009-10-03 8 views
23

Voy a implementar Comet en Python (aunque escuché cosas buenas acerca de erlycomet, no estoy muy contento de apoyar un servidor web basado en Erlang, además de todo lo demás en nuestro back-end). He encontrado varias posibilidades:¿La última recomendación para Comet en Python?

(también hay algunas otras opciones que interactúan con los servidores de Java, pero No me interesan esos)

¿Puede alguien hacer una recomendación entre estas implementaciones, teniendo en cuenta el rendimiento, la comunidad y la facilidad de implementación?

+1

Usted también puede estar interesado en las respuestas a esta pregunta, que tiene algunas otras alternativas: http://stackoverflow.com/questions/960969/python-comet-server –

+0

¡Gracias! StreamHub parece que requiere Java? Añadí orbitado a la lista, sin embargo. –

+1

Aquí hay una aplicación Comet de ejemplo con todas las funciones (usando Django + Orbited + Twisted) http://github.com/clemesha/hotdot – clemesha

Respuesta

8

Personalmente estoy usando Orbited, porque ya estoy usando Twisted y porque parece maduro. Twisted tiene una larga y agradable historia con muchos usuarios, especialmente en comparación con Diesel y Tornado. Orbited está construido en Twisted.

Hay una buena entrada de blog que cubre end-to-end orbit solution here. Envía datos desde una secuencia de comandos python a un servidor STOMP (MorbidQ) a Orbited to Javascript, representando esos datos como un gráfico.

Tornado parece bastante nuevo en la escena, no pude encontrar el cometa retorcido y no había oído hablar del diésel. Particularmente me gusta la forma en que Orbited puede reenviar cualquier tipo de tcp/ip, pero hace que sea fácil conectar clientes de javascript con un mensaje pasando STOMP back-end.

5

Recomendaría Orbited si está buscando escribir una aplicación Comet.

Lo que hace que Comet sea más complejo de implementar (que hacer una aplicación Ajax, por ejemplo), es que necesita tanto el cliente (un cliente Comet javascript) como el servidor (un servidor web asíncrono como Twisted) trabajando conjuntamente. es lo que obtienes con Orbited, tanto el cliente de javascript como el servidor.

Tanto Tornado como Diesel proporcionan principalmente la parte del servidor asíncrono, pero faltan el importante código de javascript del cliente.

Además, hay una muy buena comunidad en torno a orbitado, y varias personas están construyendo aplicaciones interesantes con él, estas páginas muestran un par de esas aplicaciones: http://orbited.org/wiki/Sites

2

También he estado usando trenzado. Pero en lugar de Orbited, estoy usando Nevow.Athena. Es realmente simple: aprende más leyendo el LiveElement tutorial.

+1

Nota: el sitio divmod.org colapsó hace un tiempo y es poco probable que vuelva a estar en línea. Creo que la última versión del tutorial de LiveElement está aquí: http://web.archive.org/web/20101012035741/http://divmod.org/trac/wiki/DivmodNevow/Athena/Tutorials/LiveElement –

+0

Además, _some_ of la antigua documentación de Divmod está aquí: http://divmodsphinx.funsize.net –

2

¿Se ha decidido por Comet? ¿Por qué no WebSockets? Si este último también es una opción, me gustaría referirme al https://github.com/tavendo/AutobahnPython que implementa WebSockets en Twisted (la documentación está disponible en http://autobahn.ws/python). Cumple con los estándares, tiene una API básica basada en mensajes y una API avanzada para el procesamiento basado en cuadros/transmisión y muchos extras más.

+0

WebSockets requiere Flash para IE <9 – Lorenzo

+0

sí. también IE9 no tiene WS. Microsoft tiene un poco de beta de WS, pero solo para Silverlight, que se puede acceder desde JS, una vez más, como la solución alternativa de Flash. No hay anuncios oficiales sobre el soporte de WS por parte de los MS: juegan juegos en el próximo estándar, y también en WebGL. Hasta a ti qué pensar sobre eso;) – oberstet

+0

IE10 viene con soporte para mensajes binarios de WebSockets: http://www.tavendo.de/autobahn/testsuite.html – oberstet

1

Mi respuesta a this question proporciona un ejemplo de empuje servidor utilizando la biblioteca autobahn, que en mi humilde opinión es hasta ahora el marco WebSocket más fácil de usar impulsado por Twisted. También está disponible una implementación de JS, así como Android.

Comet está totalmente reemplazado por WebSocket y se debe considerar el uso de este último a menos que pretenda apoyar IE8 y mayores