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?
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
Sie sollten sich Ссылка
ansehenPusher 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.
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üfenTags und Links ruby-on-rails push
Sie können Muster im Ant-Stil verwenden. Für Ihr Beispiel können Sie das einfach tun:
%Vor%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
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.