2010-05-14 4 views
4

Quelle est la meilleure façon d'implémenter des mises à jour en temps réel dans ruby ​​on rails en utilisant node.js? Ce serait bien d'entendre des exemples concrets ou vos réflexions sur des solutions alternatives.Comment implémenter des mises à jour frontales en temps réel en utilisant node.js + Ruby on Rails?

+0

Je ne vois pas comment vous voulez combiner RoR et node.js. Je m'en tiens à l'un d'entre eux et ce serait probablement le noeud ... – selfawaresoup

Répondre

-1

La façon de le faire serait avec un framework javascript comme jquery. Une fois que les rails restituent les vues et transmettent le code html au navigateur du client, le javascript peut prendre en charge la gestion des mises à jour et demander des informations à node.js puisque le noeud peut gérer des milliers de connexions simultanées.

Vous pouvez utiliser cette méthode pour des appels ajax simples ou pour former des mises à jour de comètes plus complexes.

-1

Ce n'est pas aussi simple que cela, j'ai peur ...

parce que nous avons eu la same origin policy dans ce cas, la page (rendu par rails) et le serveur de mise à jour (noeud) doit être sur le même serveur & port

Je ne sais toujours pas comment procéder. J'utilise node pour chatter avec une application rails.

+1

voir ma réponse :) –

+0

Salut sam, merci pour la réponse ... encore une question, pouvons-nous utiliser nginx si nous voulons utiliser websocket? merci – user198806

+0

apparemment pas http://stackoverflow.com/questions/2419346/can-nginx-be-used-as-a-reverse-proxy-for-a-backend-websocket-server mais vous pourriez utiliser haproxy –

4

La façon dont je le fais est en mettant en place un frontal nginx qui proxy mon application Rails et mon application de nœud.

Cela vous permet de contourner le same origin policy et de communiquer entre eux.

Voici un extrait de mon nginx.conf

location /chat_service { 
     rewrite  /chat_service/(.+) /$1 break; 
     proxy_pass http://localhost:9000/; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header Host $host; 
    } 

Cela signifie que je peux rendre les pages html de mon application rails et communiquer avec l'application de noeud sans avoir à utiliser hacks désagréables comme JSONP.

Un exemple complet est hors de portée de cette réponse, mais avec un bon proxy vous pouvez les faire travailler ensemble.

Questions connexes