2013-10-31 27 views
6

La mia idea è di creare una semplice applicazione di chat per iOS e Android. In ogni caso, la mia domanda è legata al lato server. L'opzione migliore per fare un'applicazione di chat, da quello che ho letto, è costruire un socket. Facendo riferimento al database, la mia intenzione è quella di utilizzare MySQL, che può anche essere importante da prendere in considerazione al fine di scegliere una delle possibilità.Socket.IO vs. Twisted

La mia domanda è, in termini di scalabilità, velocità e sicurezza, che è l'opzione migliore: costruire un socket con Python usando Twisted o con NodeJS usando Socket.IO?

Immagino che ci possano essere altre possibilità per costruire un socket efficiente, ma ormai sto considerando questo. Lo apprezzerei davvero se potessi darmi qualche consiglio.

+2

Molte buone domande generano un certo grado di opinione in base all'esperienza di esperti, ma le risposte a questa domanda tendono ad essere quasi interamente basate su opinioni, piuttosto che fatti, riferimenti o competenze specifiche. L'opzione "migliore" dipenderà da troppi parametri per rispondere in questo formato. – Lix

+0

Ma, ad esempio, in termini di velocità, c'è sicuramente una risposta obiettiva. In ogni caso, non può essere brutto ascoltare opinioni di persone che hanno lavorato con queste librerie. –

+0

Sarebbe un errore perché le risposte basate esclusivamente sulle opinioni non sono considerate utili su Stack Overflow. – Lix

risposta

9

Il confronto tra Twisted e Socket.io sta confrontando le mele con un camion che trasporta mele. Twisted è una libreria che fornisce funzionalità di programmazione orientate agli eventi a Python. In javascript è semplicemente javascript stesso (sia esso node.js o un browser Web o addirittura rinoceronte).

Un confronto più apt consiste nel confrontare Socket.io su node.js con Socket.io su Python. Mentre v'è un'implementazione principale di un server socket.io sul nodo ci sono diverse per Python:

(tratto da the socket.io wiki: https://github.com/learnboost/socket.io/wiki)

È anche possibile implementare il proprio socket.io in Python utilizzando Twisted se lo si desidera. Il protocollo socket.io è documentato qui: https://github.com/LearnBoost/socket.io-spec. Ma ciò vanificherebbe lo scopo di socket.io - astrae i dettagli di basso livello delle comunicazioni web in tempo reale e ti permette di concentrarti sulla scrittura della tua logica di business. .

Sul lato client che ci si distribuisce lo stesso script socket.io al browser indipendentemente dalla lingua che si decide di scrivere il server in

per quanto riguarda la lingua da scegliere: la mia regola è scegli la lingua con cui ti trovi più a tuo agio. Avrai abbastanza problemi nel debug della tua logica aziendale. Non complicarlo usando una lingua sconosciuta.

Entrambi i linguaggi sono temprati dalla battaglia (sì, anche node.js che è sorprendente considerando quanto è giovane). Python ad esempio viene utilizzato in produzione su servizi di traffico così elevato come Dropbox. Il nodo è attualmente in uso su servizi di traffico così elevato come LinkedIn mobile.

+0

Grazie a @slebetman! La tua risposta mi ha chiarito molte cose. –