Applications de rbuy en temps réel: CRAMP vs NODE.JS

Je me demandais si certains d’entre vous savaient lequel était le meilleur et quels facteurs devraient être pris en compte lors de l’utilisation de l’un de ces logiciels.

Je peux parler plus de l’autre côté (Node.js). Je viens d’écrire un joyau qui s’intègre à Rails 3 et qui utilise un back-end Node.js pour écouter les messages Redis PUBSUB et met à jour le front-end de Rails en conséquence.

Socket.IO + Node n’est pas difficile à intégrer à une application Rails (surtout si vous travaillez avec jQuery), mais en fonction de la base du navigateur que vous ciblez (comme IE7), il peut être difficile de fonctionner correctement dans tous les cas, notamment à cause de cas étranges lorsqu’on utilise Flash Socket comme solution de secours (généralement lorsque WebSockets ne fonctionne 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 cadre Web fantastique pour la création d’applications plus volumineuses nécessitant un front de calcul lourd. Je ne choisirais pas de l’utiliser pour de petites applications événementielles simplement parce qu’il utilise beaucoup de mémoire pour le framework seul. J’aime Ruby / Rails, mais quand il s’agit d’avoir besoin de quelque chose pour un traitement / traitement des messages rapide et propre, Node a mon vote.

Si vous avez besoin d’exemples plus concrets, mon projet Kthxbye (un clone de Resque-esque) communique avec Redis qui est écouté à son tour par Node.JS, qui 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 le manque complet de documentation sur le projet de nœud.)

Il y a quelque temps, j’ai joué avec Cramp and rails 3. A tenté de créer une vue avec des mises à jour dynamics à l’aide de WebSockets pour canaliser les données entre les clients et le serveur. Cela fonctionnait parfaitement avec Chrome, mais Safari 5 et FF implémentent une version plus récente du protocole websocket et Cramp ne le permet pas. Je ne pouvais donc pas le faire fonctionner là-bas.

Je conviens que l’utilisation de Ruby pour l’ensemble de la stack est une bonne chose, mais je pense que Cramp est actuellement à la traîne légèrement derrière la courbe à certains égards.

J’ai décidé de mordre la balle et d’utiliser node.js (et le paquet SocketIO) pour mes affaires.

Bonne chance!

J’écris une application web quelque peu non sortingviale utilisant Rails (3) et Cramp ensemble pour le moment. Je n’ai aucune expérience de Node.js, et je viens juste de commencer à utiliser Cramp tel quel, mais cela semble prometteur. Et à mon avis, être capable d’utiliser Ruby est un gros plus! (J’ai commencé avec Tornado (Python) et je ne pouvais pas supporter la langue. Désolé les fans de Python!)

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

Découvrez les différents repos de crampe. Les WebSockets sont des cibles mobiles et il n’est pas si facile de vivre sur le bord. github.com/maccman/cramp fork fonctionne avec la mise en œuvre de Websockets récentes, 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, préparez-vous à utiliser thin + eventmachine sur les serveurs. Avec les crampes, vous devriez utiliser peu en mode production, les crampes ne sont pas encore très bonnes.

Pourquoi vous limitez-vous à Cramp du côté rbuy?

Vous pouvez également utiliser Rails pour les applications en temps réel avec websocket-rails .

Vous pouvez également utiliser des frameworks 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 simple serveur echo websocket 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