Übertragen Sie Daten von der Rails-App an die Clients

8

Ich arbeite an einer Rails-App, die in erster Linie durch eine API an verschiedene mobile Clients (iOS, Android usw.) bereitgestellt wird. Die Anwendung beinhaltet, dass Benutzer Daten an den Server senden (über API-Aufrufe), aber ich möchte die Möglichkeit einschließen, diese Daten auf andere Clients zu übertragen. Das allgemeine Konzept ähnelt einer Messaging-App, bei der ich vom Client eine Nachricht an den Server übergebe und der Empfänger die Nachricht vom Server erhält.

Die einzige Methode, die ich im Moment kenne, ist die ständige Abfrage des Servers, aber es muss bessere technische Lösungen geben. Irgendwelche Ideen?

    
Jack 14.01.2012, 09:54
quelle

4 Antworten

4

Ich würde versuchen, mit einem Websocket innerhalb der Seite die Updates zu pushen.

Sie können dies mithilfe von Faye implementieren, das auf lange Abfragen und andere Work-arounds für Browser ohne Websocket-Unterstützung zurückgreift. Faye hat eine pure-Ruby-Implementierung, so dass Sie wahrscheinlich Zugriff auf Ihre Modellschicht erarbeiten können.

Bearbeiten:

Außerdem ist dies ein Projekt, das Faye mit Rails kombiniert. Es ist ziemlich neu, aber könnte tun, was Sie wollen. Faye-Rails

    
ebeland 14.01.2012 14:38
quelle
4

Sie sollten sich Ссылка

ansehen
  

Pusher ist eine gehostete API zum schnellen, einfachen und sicheren Hinzufügen von skalierbaren Echtzeitfunktionen für Web- und mobile Apps.

Wenn Sie eine selbst gehostete Lösung benötigen, sollten Sie sich Slanger gem Ссылка ansehen, das eine Serverimplementierung für Push-Client-Bibliotheken ist. Wenn Sie glauben, dass Sie eine gehostete Lösung benötigen, ändern Sie einfach die URLs.

  

Slanger ist eine Open-Source-Server-Implementierung des in Ruby geschriebenen Pusher-Protokolls. Es ist so entworfen, dass es horizontal über N Knoten skaliert und unabhängig davon ist, an welchen Slanger-Knoten ein Teilnehmer angeschlossen ist, d. H. Teilnehmer an demselben Kanal müssen NICHT mit demselben Slanger-Knoten verbunden sein. Mehrere Slanger-Knoten können ohne spezielle Konfiguration hinter einem Lastenausgleichsmodul platziert werden. Im Wesentlichen wurde es entworfen, um sehr einfach zu skalieren.

    
Ahmed Al Hafoudh 14.01.2012 09:57
quelle
2

Ruby verfügt über eine eigene Event-Processing-Bibliothek, die wie ein Juwel implementiert ist:

Ссылка

Vielleicht hilft es dir

    
alexkv 14.01.2012 14:25
quelle
1

Ich bevorzuge event machine gegenüber jeder anderen Lösung. Es ist etwas komplizierter, dass faye, aber Sie können viel anspruchsvolleren Code mit Event-Maschine schreiben.

Vielleicht möchten Sie diesen Peepcode-Screencast auf der Event-Maschine

überprüfen     
CodeMaster123 14.01.2012 15:34
quelle

Tags und Links

Django: Verwenden von Annotate, Count und Distinct in einem Queryset ___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ tag123spring ___ Das Spring Framework ist ein Open-Source-Framework für die Anwendungsentwicklung auf der Java-Plattform. Im Mittelpunkt steht die umfassende Unterstützung von komponentenbasierten Architekturen, und es verfügt derzeit über ein Dutzend hochintegrierter Module. ___ tag123springmvc ___ Ein Framework zum Erstellen von Java-Webanwendungen basierend auf dem Model-View-Controller (MVC) -Muster. Es fördert flexiblen und entkoppelten Code von den zugrunde liegenden Ansichtstechnologien. ___ answer8805223 ___

Sie können Muster im Ant-Stil verwenden. Für Ihr Beispiel können Sie das einfach tun:

%Vor%     
___ qstnhdr __ Binding dot-separated Strings mit @PathVariable im Frühjahr MVC ___ qstntxt ___

Ich habe die folgende Methode in meinem Controller:

%Vor%

Wenn ich /servers/test.myserver.com anfordere, hat die gebundene Variable den Wert test.myserver . Im Allgemeinen wird für jede Anfrage, die durch Punkte getrennte Werte enthält, der letzte Teil aus dem Wert der gebundenen Variablen weggelassen. Ich benutze Frühling 3.0.4

Irgendwelche Vorschläge?

Danke

    
___ answer8803941 ___

Vielleicht möchten Sie das useDefaultSuffixPattern von DefaultAnnotationHandlerMapping ändern. Überprüfen Sie So ändern Sie das Verhalten von Spring MVC im Umgang mit URL 'dot' Charakter für eine Diskussion darüber.

    
___