¿Cuál es el mejor servidor Socket.io para usar con Django - Gevent o Tornadio2?
Pregunta
Estoy trabajando en una aplicación web usando Backbone.js y Socket.io en el lado del cliente, y django en el lado del servidor. Me gustaría hacer "presionar" desde el servidor cuando cambia los datos (al igual que en una aplicación de chat). Encontré dos implementación de Socket.io en Python con una integración de Django que parecía prometedora:
- django-socketio que se basa en Gevent y Gevent-Socketio
- Integraciones basadas en tornados que usan torandio2 como Tornadio-With-Django y django-tornadio
Tanto Gevent como Tornado tienen muy buen rendimiento, así que no estoy interesado en otros marcos de conexión Async. El único otro requisito es el uso de SSL para la conexión, sin transmisión de texto plano.
Entonces, entre estos dos, ¿cuál sería el más fácil de implementar? ¿Existe un buen marco basado en suscripción para Tornadio2 similar a cómo Django-Socketio lo hace para Gevent?
Otra opción que encontré es django-serverpush, que también se basa en tornadio2. Se integra mejor con Django que las otras aplicaciones Tornadio2, pero la implementación aún necesita cierta mejora antes de que se prepare.
Solución
Al momento de escribir esta respuesta, Django-Socketio todavía no se ha actualizado por completo para trabajar con el último Socket.io.
Tornado/Tornadio2, por otro lado, están bien mantenidos, y con algunas extensiones personalizadas pude llevarlas y funcionar muy bien. Después de lanzar mi producto, espero pasar un tiempo para obtener mis modificaciones. Hasta entonces, estaría encantado de responder cualquier pregunta sobre cómo hacer esto en funcionamiento.
Otros consejos
Honestamente, diría que son bastante similares. Esto es más una opinión. Para el rendimiento, creo que Gevent tiene más rendimiento basado en lo que he leído, pero debe hacer sus propias pruebas para averiguar cuál tiene el mayor rendimiento.