Ich habe eine asynchrone Version von Rails 3 erstellt, die ich in eine WebSocket-Implementierung integrieren möchte.
Ich benutze EventMachine, Ruby 1.9, Fibers und verschiedene em-aromatisierte Bibliotheken, wie von Illy Grigorik dokumentiert.
Ich habe mir em-websocket als Handler für WebSocket-Verbindungen angeschaut, bin mir aber nicht sicher, wie ich das am besten anhängen soll in eine Rails App.
Im Idealfall funktioniert dies ähnlich wie bei node.js mit Express und Socket.io - eingehende Verbindungen sollten erkannt und an den WebSocket-Handler oder den regulären Rails-Stack gesendet werden, wie durch die HTTP-Header & amp; usw. .
TL; DR
Ich weiß, dass diese Frage alt ist, aber hoffentlich hilft diese Antwort denen, die hier von Google geleitet wurden.
Ich arbeite an einem Juwel, das die beiden Hauptkriterien der ursprünglichen Frage erfüllt. Der Edelstein heißt websocket-rails und wurde von Grund auf so entwickelt, dass die Verwendung von WebSockets in einer Rails-Anwendung unmöglich wird einfach. Es ist endlich eine stabile Version, aber es gibt eine Menge mehr Funktionalität, die ich glaube, dass es braucht.
Momentan ist die Ereignisbehandlung sehr einfach. Es gibt eine events.rb
-Datei, in der clientseitige Ereignisse Controlleraktionen zugeordnet werden, die der routes.rb
-Datei ähneln. Alle Anforderungen an /websocket
werden an den integrierten WebSocket-Server übergeben, ohne dass ein separater Serverprozess erforderlich ist.
Das ehrgeizigere Ziel des Projekts ist es, Rails zu einem traditionelleren MVC-Muster zu bewegen, bei dem Ereignisse auf dem Client-Browser zur Verarbeitung und Aktualisierung eines Modells auf den Server gelangen und auf dem Client Ereignisse auslösen, um die gerenderte Darstellung zu aktualisieren von diesem Modell.
Jede Rückmeldung wäre willkommen.
Vielleicht versuchen Sie socky ? Im Moment ist es das Beste und es ist ziemlich einfach, es mit Rails (2 und 3) zu integrieren.
Tags und Links ruby-on-rails websocket asynchronous rack eventmachine