2014-02-12 22 views
9

Ich stehe am Anfang eines Projekts, um eine Echtzeit-Chat-Anwendung zu erstellen, die sich über eine Website und eine Android-App erstreckt. Da ich eine kontinuierliche Abfrage bei allen Arten von API-Aufrufen verhindern möchte, möchte ich Websockets verwenden (mit denen ich keine Erfahrung habe) und dabei dachte ich, es wäre eine gute Idee, node.js zu lernen. Also muss ich eine Websockets-Lib für node.js verwenden. Dafür sehe ich, dass es eine ganze Reihe von Optionen gibt. Die Sache, über die ich am meisten lese, ist socket.io.Welche node.js-Socket-Engine sollte ich verwenden?

Um SO habe ich auch gelesen, dass socket.io v0.9 war ziemlich fehlerhaft, und ich sehe mehrere Referenzen über engine.io das neue Backend von socket.io von socket.io Version 1.0, die angeblich "rund um die Ecke". Alle diese Meldungen sind ab 2012 aber (this one for example), und wenn ich einen Blick auf die socket.io website haben, ich sehe sie noch bei v0.9, was mich macht ein paar Dinge fragen sich:

  • ist socket.io noch aktiv entwickelt?
  • ist socket.io überhaupt eine brauchbare Option, oder muss ich in einer anderen Bibliothek residieren?
  • Welche würden Sie für einen einfachen Start empfehlen, oder implementiert node.js jetzt gute Sockets (zB mit net.Socket)?

Alle Tipps sind willkommen!

+1

Die Antwort auf http://stackoverflow.com/questions/16392260/which-websocket-library-to-use-with-node-js kann 5 Monate alt, aber ausreichend hoch bis heute, um deine Fragen zu beantworten. – chbrown

+0

@chbrown - Ich lese diese Antwort auch, aber das ist hauptsächlich eine Auflistung aller Möglichkeiten, anstatt wirklich die Auf- und Abwärtspfade und Empfehlungen zu geben, welche zu verwenden. Auch hier ist es gut, die Optionen zu sehen, aber mir war nicht klar, welche besser/einfacher sind als andere. Daher diese Frage. – kramer65

Antwort

3

wird socket.io noch aktiv entwickelt?

https://github.com/learnboost/socket.io

Master: Autor 7 jetzt

es ist wirklich so in der Entwicklung Stunden.

Ist socket.io überhaupt eine brauchbare Option, oder muss ich in einer anderen Bibliothek residieren?

Wir verwenden socket.io in mehreren Projekten und es ist OK. Vielleicht sollten Sie Ihre Herzschlagwerte einstellen. Für uns sind:

app.io = io.listen(app); 
logger.info('Setting up basic configuration.'); 
app.io.set('heartbeat timeout', 50); 
app.io.set('heartbeat interval', 20); 
app.io.set('browser client minification', true); 
app.io.set('store', new io.RedisStore(ioStoreSettings)); // also don't use in-memory store, it is hardly not recommended 
+0

Danke für die Antwort. Nur eine Follow-up-Frage; Sie sagen, dass socket.io "OK" ist, was für mich nicht zu enthusiastisch klingt. Würde es Ihnen etwas ausmachen zu teilen, warum Sie denken, dass es "OK" und nicht "großartig" ist? – kramer65

+0

@ kramer65 Ich denke, dass es großartig ist) Klar. Wir haben einige Probleme (mit Wiederverbindung, zum Beispiel oder korrekte Behandlung von nicht authentifizierten Socket-Client) erfahren, aber alle von ihnen sind für uns gelöst. – yttrium

+0

In Ordnung, danke. Obwohl ich normalerweise auf eine "Es funktioniert einfach" -Bewertung hoffe, denke ich, dass wir uns dann für socket.io entscheiden werden. Nur eine letzte Frage: Verwenden Sie im Allgemeinen die neueste Version von github oder leben Sie in älteren Builds? – kramer65

Verwandte Themen