2013-10-31 4 views
6

Meine Idee ist es, eine einfache Chat-Anwendung für iOS und Android zu bauen. In jedem Fall bezieht sich meine Frage auf die Server-Seite. Die beste Möglichkeit, um eine Chat-Anwendung zu machen, ist nach dem, was ich gelesen habe, einen Socket zu erstellen. Mit Bezug auf die Datenbank möchte ich MySQL verwenden, was auch wichtig sein kann, um eine der Möglichkeiten zu wählen.Socket.IO vs. Twisted

Meine Frage ist in Bezug auf Skalierbarkeit, Geschwindigkeit und Sicherheit, die die beste Option ist: Erstellen eines Sockets mit Python mit Twisted oder mit NodeJS mit Socket.IO?

Ich vermute, dass es andere Möglichkeiten gibt, eine effiziente Steckdose zu bauen, aber jetzt denke ich über diese beiden. Ich würde es wirklich schätzen, wenn Sie mir einen Rat geben könnten.

+2

Viele gute Fragen erzeugen ein gewisses Maß an Meinungen auf der Grundlage von Expertenerfahrungen, aber die Antworten auf diese Frage basieren eher auf Meinungen als auf Fakten, Referenzen oder spezifischen Fachkenntnissen. Die "beste" Option hängt von zu vielen Parametern ab, die in diesem Format zu beantworten sind. – Lix

+0

Aber zum Beispiel gibt es in Bezug auf die Geschwindigkeit eine objektive Antwort. Auf jeden Fall kann es nicht schlecht sein, Meinungen von Leuten zu hören, die mit diesen Bibliotheken gearbeitet haben. –

+0

Es wäre schlecht, wenn Antworten, die ausschließlich auf Meinungen basieren, für Stack Overflow nicht als nützlich erachtet werden. – Lix

Antwort

9

Vergleichen Twisted und Socket.io vergleicht Äpfel mit einem Lastwagen, der Äpfel trägt. Twisted ist eine Bibliothek, die Python ereignisorientierte Programmierfunktionen zur Verfügung stellt. In Javascript ist das nur JavaScript selbst (sei es node.js oder ein Webbrowser oder sogar Rhino).

Ein besserer Vergleich ist, Socket.io auf node.js mit Socket.io auf Python zu vergleichen. Zwar gibt es eine Haupt Implementierung eines socket.io Server auf Knoten gibt es mehrere für Python:

(entnommen aus die socket.io wiki: https://github.com/learnboost/socket.io/wiki)

Sie können auch Ihre eigene socket.io in Python mit Twisted implementieren, wenn Sie möchten. Das Protokoll socket.io ist hier dokumentiert: https://github.com/LearnBoost/socket.io-spec. Aber das würde den Zweck von socket.io zunichte machen - es abstrahiert Low-Level-Details von Echtzeit-Web-Kommunikation und ermöglicht es Ihnen, sich auf das Schreiben Ihrer Geschäftslogik zu konzentrieren. .

Auf der Clientseite Sie das gleiche socket.io Skript an den Browser bereitstellen würde, unabhängig davon, welche Sprache Sie sich entscheiden, in den Server schreiben

In Bezug auf die Sprache auswählen: meine Faustregel Wählen Sie die Sprache, mit der Sie sich am wohlsten fühlen. Sie werden genug Probleme haben, Ihre Geschäftslogik zu debuggen. Verkomplizieren Sie es nicht, indem Sie eine unbekannte Sprache verwenden.

Beide Sprachen sind kampfgehärtet (ja, sogar node.js, was überraschend ist, wenn man bedenkt, wie jung es ist). Python zum Beispiel wird in der Produktion auf solchen High-Traffic-Diensten wie Dropbox verwendet. Der Knoten wird derzeit in solchen stark frequentierten Diensten wie LinkedIn Mobile verwendet.

+0

Danke @slebetman! Deine Antwort hat mir viele Dinge klar gemacht. –