Qual è il miglior server socket.io da utilizzare con Django - Gevent o Tornadio2?
Domanda
Sto lavorando su un WebApp utilizzando BackBone.js e Socket.io sul lato client e Django sul lato server. Vorrei fare "spingere" dal server quando i dati cambiano (proprio come in un'app di chat). Mi sono imbattuto in due implementazione di Socket.io in Python con un'integrazione di Django che sembrava promettente:
- Django-Socketio che si basa su Gevent e Gevent-Socketio
- Integrazioni basate sul tornado che usano Torandio2 come Tornadio-With-Django e Django-Tornadio
Sia Gevent che Tornado hanno prestazioni molto buone, quindi non sono interessato ad altri framework di connessione asincrona. L'unico altro requisito è l'uso di SSL per la connessione: nessuna trasmissione di testo semplice.
Quindi tra questi due avvicinati, che sarebbe il più semplice da implementare? Esiste un buon framework basato su abbonamento per Tornadio2 simile a come Django-Socketio lo fa per Gevent?
Un'altra opzione che ho incontrato è Django-Serverpush, che si basa anche su Tornadio2. Si integra meglio con Django rispetto alle altre app Tornadio2, ma l'implementazione richiede ancora qualche miglioramento prima che diventi pronto per la produzione.
Soluzione
Al momento della stesura di questa risposta, Django-Socketio non è ancora stato completamente aggiornato per lavorare con l'ultimo socket.io.
Tornado/Tornadio2 invece sono ben mantenuti e con alcune estensioni personalizzate sono stato in grado di farli funzionare e funzionare molto bene. Dopo aver lanciato il mio prodotto, spero di trascorrere un po 'di tempo per oppen-source le mie modifiche. Fino ad allora, sarei felice di rispondere a qualsiasi domanda su come far funzionare questo.
Altri suggerimenti
Onestamente direi che sono abbastanza simili. Questa è più un'opinione. Per le prestazioni penso che Gevent abbia più prestazioni in base a ciò che ho letto, ma dovresti fare i tuoi test per scoprire quale ha le prestazioni più alte.