2010-08-20 20 views
27

Ich frage mich, wie man node.js in eine Rails-App integrieren kann (zu Lernzwecken).Ruby on rails und Node.js

Basierend auf Michael Hartl-Tutorial (http://railstutorial.org/) realisierte ich einen einfachen Twitter-Klon mit Rails und möchte Nutzer-Microports in Echtzeit ohne den Einsatz von Kometen oder Moloch bekommen. (Die Anwendung wird auf Heroku gehostet)

Im Moment sehe ich nur Beispiel mit node.js Frameworks (http://howtonode.org/grasshopper-shoutbox), aber nichts verschmolzen mit einer Ruby on Rails App. Ich wäre sehr dankbar, wenn jemand ein gutes Tutorial kennt oder mir ein paar Punkte zum Starten gibt, um das zu erreichen.

Danke!

Antwort

13

Wie Shripad sagte, würde ich in Betracht ziehen, Ihre App mit Node selbst zu bauen. Geddy werden Sie sich vertraut fühlen (egal wie Sie anfangen), wenn Sie Erfahrung mit Rails haben. Hinweis: Ich habe keine Erfahrung mit Geddy in einer echten App, aber es ist das beste Rails-ähnliche Framework, das ich bisher gesehen habe. Für die Persistenz können Sie SQLite, PostgreSQL oder CouchDB verwenden, genauso wie Sie es mit Rails tun würden. Ich habe darüber nachgedacht, wie ich ohne Zwischenschaltung zwischen einer Rails-App und einem Knoten kommunizieren kann. In unserem Arbeitsprojekt verwenden wir Redis als Vermittler zwischen Rails und Node. Rails publiziert Nachrichten an Redis, Knoten zieht Nachrichten von Redis. Ich konnte keinen guten Weg oder Beispielprojekte finden, um die mittlere Kommunikationsschicht auf einem persönlichen Projekt zu vermeiden, also ging ich mit dem gleichen Setup. Die gute Nachricht ist, dass Node Redis-Module geschrieben werden und sobald Sie alles installiert haben, ist es leicht, das Hin- und Herschieben von Nachrichten zu testen.

+2

+1 für Geddy. Schau es dir jetzt an. :) –

+0

Danke Jungs! – user425891

+2

Sie könnten auch http://www.perfectline.ee/blog/optimizing-ruby-on-rails-application-with-nodejs für einen ähnlichen Fall –

4

Wenn Sie an der Erstellung von Echtzeit-Apps interessiert sind, dann gehen Sie mit node.js (hohe Gleichzeitigkeit) allein. Sie können node.js wirklich nicht in eine Rails-App integrieren. Sie können jedoch einen Node-Server auf einem anderen Port einrichten lassen, an dem api und websockets konfiguriert sind, und dann Ihre Rails-App mit diesem Server kommunizieren lassen. Es ist PITA, diese Art von Setup zu machen. Sie erstellen vielmehr die gesamte Web-App im Knoten selbst. Jedoch, wenn Sie etwas Schienenspezifisches wollen, das nicht Moloch verwendet, würde ich http://www.pusherapp.com vorschlagen.

Es ist extrem einfach zu Server Push mit Pusher einrichten.

3

Es schon getan. Nicht wirklich NodeJs, sondern ein Framework, das darauf aufgebaut ist. Yada, Yada, Yada ... check this out: https://github.com/1602/express-on-railway

+0

Railway und Getty sind zu überladen imo .. Ich vermisse Schienen Sauberkeit :( – imjp

0

** Run Knoten an der Seite Ihres Schienen Server **

Wenn Sie Ihre Rails-Anwendung mit Knoten intergrate Sie die node-rails gem

verwenden könnte

Mit Node Rails können Sie einen Node-Server neben Ihrer Rails-Anwendung ausführen. Die NodeRails für die gemeinsame Nutzung von Lizenzen gehen davon aus, dass Sie Devise für Ihre Authentifizierung verwenden. Node-Rails verwendet [redis] [2], also müssen Sie das installiert haben. Learn more about using npm packages on Rails.