2010-08-20 24 views
27

Mi chiedo come integrare node.js su un'app per rails (per scopi didattici).Ruby on rails e Node.js

Basato sul tutorial di Michael Hartl (http://railstutorial.org/) Ho realizzato un clone di twitter di base con le guide e voglio ottenere i micropost utente in tempo reale senza l'uso di cometa o juggernaut. (l'applicazione è ospitata su heroku)

Per il momento, vedo solo esempi con framework node.js (http://howtonode.org/grasshopper-shoutbox) ma nulla si è fuso con un ruby ​​sull'app per rails. Sarei molto grato se qualcuno conosce un buon tutorial o mi dia dei punti da cui iniziare per realizzare questo.

Grazie!

risposta

13

Come ha detto Shripad, prenderei in considerazione la possibilità di creare l'app con Node da sola. Geddy ti sembrerà familiare (iniziare comunque) se hai esperienza con Rails. Nota: non ho esperienza su un'app per il mondo reale con Geddy, ma è la migliore struttura simile a Rails che abbia mai visto finora. Per la persistenza puoi usare SQLite, PostgreSQL o CouchDB, proprio come faresti con Rails. Ho pensato a come comunicare tra un'app Rails e Node senza alcun intermediario. Nel nostro progetto di lavoro stiamo usando Redis come intermediario tra Rails e Node. Rails pubblica i messaggi su Redis, il nodo estrae i messaggi da Redis. Non sono riuscito a trovare un buon modo o progetti di esempio per evitare il livello di comunicazione intermedio in un progetto personale, quindi sono andato con la stessa configurazione. La buona notizia è che i moduli Node Redis vengono scritti e, una volta installato tutto, è facile testare i messaggi avanti e indietro.

+2

+1 per Geddy. Devo controllarlo ora. :) –

+0

Grazie ragazzi! – user425891

+2

Puoi anche controllare http://www.perfectline.ee/blog/optimizing-ruby-on-rails-application-with-nodejs per un caso simile –

4

Se stai cercando di creare app in tempo reale, allora vai con node.js (alta concorrenza) da solo. Non è davvero possibile integrare node.js in un'app per rails. È tuttavia possibile configurare un server nodo su un'altra porta con un'API e websocket configurati e quindi comunicare all'app del dispositivo di comunicazione con quel server. È PITA a fare questo tipo di installazione. Preferisci invece costruire l'intera app web nel nodo stesso. Comunque, se vuoi qualcosa di specifico per le rotaie che non usi juggernaut allora suggerirei http://www.pusherapp.com.

È estremamente facile impostare il server push utilizzando Pusher.

0

** nodo Run lungo il lato server rotaie **

Se si vuole intergrate la vostra applicazione Rails con nodo è possibile utilizzare il node-rails gem

Node Rails ti consentirà di eseguire un server Node lungo la tua applicazione Rails e disporre dell'autenticazione a due parti. NodeRails presuppone che tu stia utilizzando Devise per l'autenticazione. Node-Rails utilizza [redis gem] [2], quindi è necessario averlo installato. Learn more about using npm packages on Rails.