web-dev-qa-db-fra.com

Ruby on Rails et Node.js

Je me demande comment intégrer node.js dans une application Rails (à des fins d'apprentissage).

Basé sur le tutoriel de Michael Hartl ( http://railstutorial.org/ ), j'ai réalisé un clone Twitter de base avec Rails et je souhaite obtenir des micropostages d'utilisateurs en temps réel sans utiliser comet ou juggernaut. (l'application est hébergée sur heroku)

Pour le moment, je ne vois que des exemples avec les frameworks node.js ( http://howtonode.org/Grasshopper-shoutbox ) mais rien n’a été fusionné avec une application Ruby on Rails. Je vous en serais très reconnaissant. si quelqu'un connaît un bon tutoriel ou me donne quelques points pour commencer afin d'accomplir cela.

Merci! 

27
user425891

Comme Shripad l'a dit, j'aimerais envisager de créer votre application avec Node par lui-même. Geddy se sentiront familiers (débutant quand même) si vous avez de l'expérience avec Rails. Remarque: je n'ai pas d'expérience avec une application du monde réel avec Geddy, mais il s'agit du meilleur framework semblable à Rails que j'ai vu jusqu'à présent. Pour la persistance, vous pouvez utiliser SQLite, PostgreSQL ou CouchDB, comme vous le feriez avec Rails. J'ai réfléchi à la façon de communiquer entre une application Rails et un nœud sans intermédiaire. Dans notre projet de travail, nous utilisons Redis comme intermédiaire entre Rails et Node. Rails publie des messages vers Redis, Node extrait les messages de Redis. Je ne pouvais pas trouver un bon moyen ou des exemples de projets pour éviter la couche de communication intermédiaire dans un projet personnel, alors je suis parti avec la même configuration. La bonne nouvelle est que les modules de Node Redis sont écrits et qu’une fois que tout est installé, il est facile de tester le transfert de messages.

13
Andy Atkinson

Si vous envisagez de créer des applications en temps réel, choisissez uniquement node.js (haute simultanéité). Vous ne pouvez vraiment pas intégrer node.js dans une application Rails. Toutefois, vous pouvez configurer un serveur de nœud sur un autre port avec une API et des websockets configurés, puis faire communiquer votre application Rails avec ce serveur. C'est PITA de faire ce genre de configuration. Vous construisez plutôt l'ensemble de l'application Web dans le noeud même. Cependant, si vous voulez quelque chose de spécifique qui n'utilise pas de poids lourd, je vous conseillerais http://www.pusherapp.com .

Son extrêmement facile à configurer serveur Push en utilisant Pusher.

4
Shripad Krishna

C'est déjà fait. Pas vraiment NodeJs mais un framework construit dessus. Yada, yada, yada ... regardez ceci: https://github.com/1602/express-on-railway

3
ptdorf

** Exécuter le noeud le long de votre serveur Rails ** 

Si vous souhaitez intégrer votre application Rails à Node, vous pouvez utiliser le gem node-Rails

Node Rails vous permettra d’exécuter un serveur de nœud parallèlement à votre application Rails et d’avoir l’authentification de partage partagée. NodeRails suppose que vous utilisez Devise pour votre authentification. Node-Rails utilise [redis gem] [2], vous devrez donc l'installer. En savoir plus sur l'utilisation des packages npm sur Rails.

0
pmutua