2010-05-07 7 views

Répondre

2

J'écris un application web un peu non trivial utilisant Rails (3) et Cramp ensemble pour le moment. Je n'ai aucune expérience avec Node.js, et j'ai juste commencé à utiliser Cramp comme ça, mais ça a l'air prometteur. Et à mon avis, pouvoir utiliser Ruby est un gros plus! (J'ai commencé avec Tornado (Python) et ne pouvait pas supporter la langue Désolé fans Python!)

L'inconvénient est que j'ai trouvé très, très petit matériel de tiers sur Cramp. Je suppose que ce n'est pas surprenant compte tenu de la nouveauté, mais vous êtes plus ou moins seul. Si vous avez besoin de votre main, vous ne devriez probablement pas utiliser Cramp.

3

J'ai joué avec crampe et rails 3 un certain temps. Était en train de créer une vue avec des mises à jour dynamiques en utilisant WebSockets pour canaliser les données entre les clients et le serveur. Cela a fonctionné parfaitement avec Chrome, mais Safari 5 et FF implémentent une version plus récente du protocole websocket et Cramp ne le fait pas, je ne pouvais pas le faire fonctionner ici.

Je suis d'accord que l'utilisation de Ruby pour l'ensemble de la pile est agréable, mais un mince exploit que je Cramp droite accuse un peu maintenant derrière la courbe dans certains aspects.

j'ai décidé de mordre les Node.js de balles et d'utilisation (et le paquet SocketIO) pour mes affaires.

Bonne chance!

+0

Juste une bosse sur celui-ci, le développement Cramp semble avoir bloqué un certain temps (il y a environ 2 ans) - il y a eu une demande de traction (ou deux) accepté il y a un an, et c'est à peu près tout. - Je ne peux rien dire d'autre sur l'état du code, car le manque d'activité m'en a détourné. - Je peux encore l'essayer, à moins que j'obtienne d'abord une autre solution réalisable. – ocodo

1

Découvrez différentes prises en pension de crampe. Les WebSockets sont des cibles mobiles, et vivre sur le bord n'est pas si simple. La fourche github.com/maccman/cramp fonctionne avec la mise en œuvre des websockets rescent, alors que la crampe d'origine n'est pas à jour et en cours de refactoring. Jetez également un coup d'œil à eventmachine-websockets. Quoi qu'il en soit - être prépeared à utiliser thin + eventmachine sur le côté serveur. Avec la crampe, vous devriez courir mince en mode de production, la crampe n'est pas encore bonne.

5

Je peux parler plus de l'autre côté (Node.js). Je viens d'écrire une gemme qui s'intègre à Rails 3 qui utilise un back-end Node.js pour écouter les messages Redis PUBSUB et met à jour le frontal Rails en conséquence. Socket.IO + Node n'est pas difficile à intégrer avec une application Rails (surtout si vous utilisez jQuery), mais en fonction de votre base de navigateur cible (comme IE7), il peut être difficile de travailler correctement dans tous les cas, à savoir à cause de certains cas bizarres lors de l'utilisation de Flash Socket comme solution de repli (généralement là où les WebSockets ne fonctionnent pas).

Cela dit, je recommande fortement Node.js + Socket.IO. Il est super léger avec beaucoup d'options et de flexibilité pour faire presque tout ce que vous voulez. À mon avis, Rails est un framework web fantastique pour la construction d'applications plus grandes qui nécessitent une interface frontale computationnelle. Je ne choisirais pas de l'utiliser pour de petites applications basées sur des événements simplement parce qu'il utilise tellement de mémoire pour le framework seul. J'adore Ruby/Rails, mais quand il s'agit d'avoir besoin de quelque chose pour un traitement rapide et propre des événements, Node a mon vote. Si vous avez besoin d'exemples plus concrets, mon projet Kthxbye (un clone Resque-esque) communique avec Redis, qui à son tour est écouté par Node.JS qui à son tour peut mettre à jour une application web.

Plugin: http://github.com/plukevdh/kthxbye (voir: http://github.com/plukevdh/kthxbye/blob/master/lib/generators/kthxbye/templates/kthxbye.js)

Noeud Backend: http://github.com/plukevdh/kthxbye-node (voir http://github.com/plukevdh/kthxbye-node/blob/master/poll.js)

(. Toutes mes excuses pour l'absence totale de la documentation sur le projet de nœud)

0

Pourquoi vous limitez-vous à Cramp sur le côté rubis?

Vous pouvez également utiliser Rails pour les applications en temps réel avec websocket-rails. Vous pouvez également utiliser des frameworks en temps réel tels que Plezi ou Volt ... Volt et Plezi fonctionnent mieux que Cramp, à mon avis (mais je suis partial, comme j'ai écrit le framework Plezi).

Voici un serveur websocket simple écho avec Plezi:

require 'plezi' 

class EchoCtrl 
    def index 
     redirect_to 'http://www.websocket.org/echo.html' 
    end 
    def on_message data 
     # to broadcast the data add: 
     # broadcast :_send_message, data 
     _send_message data 
    end 
    def _send_message data 
     response << data 
    end 
end 

listen 

# you can add, a socket.io route for JSON with socket.io 
route '/socket.io', EchoCtrl 
route '/', EchoCtrl 

# exit the irb console to finish the setup and start the Plezi server 
exit