2012-01-14 21 views
8

Pracuję nad aplikacją rails, która będzie głównie wyświetlana przez api różnym klientom mobilnym (iOS, Android itp.). Aplikacja obejmuje użytkowników przesyłających dane do serwera (za pośrednictwem wywołań api), ale to, co chcę uwzględnić, to możliwość przekazywania tych danych do innych klientów. Ogólna koncepcja jest podobna do aplikacji do obsługi wiadomości, w której przesyłam wiadomość do serwera ode mnie, a odbiorca jest wysyłany z serwera.Przesyłaj dane z aplikacji szyny do klientów

Jedyną znaną mi metodą jest ciągłe odpytywanie serwera, ale muszą istnieć lepsze rozwiązania techniczne niż to. Jakieś pomysły?

Odpowiedz

4

Powinieneś sprawdzić http://www.pusher.com

popychacz jest gospodarzem API za szybko, łatwo i bezpiecznie dodawanie skalowalną funkcjonalność w czasie rzeczywistym do stron internetowych i aplikacji mobilnych.

Jeśli potrzebujesz rozwiązania hostowanego samodzielnie, powinieneś sprawdzić gem slanger https://github.com/stevegraham/slanger, który jest implementacją serwera dla bibliotek klienta pusher. Kiedy uważasz, że potrzebujesz hostowanego rozwiązania, wystarczy zmienić adres URL.

Slanger jest serwerem typu open source realizującym protokół Pusher napisany w języku Ruby. Jest zaprojektowany do skalowania poziomego w N węzłach i do bycia agnostycznym, do którego węzła Slanger jest podłączony abonent, to znaczy abonenci tego samego kanału NIE muszą być połączeni z tym samym węzłem Slanger. Wiele węzłów Slanger może siedzieć za układem równoważenia obciążenia bez specjalnej konfiguracji. W istocie zaprojektowano go tak, aby był bardzo łatwy do skalowania.

+0

Dzięki, szukałem self-hosted roztworu jako tego projektu opiera się głównie na moją potrzebę rozwijania swojej wiedzy – Jack

4

chciałbym spojrzeć na użyciu websocket obrębie strony nacisnąć aktualizacje.

Można to zaimplementować za pomocą Faye, która powraca do długiego sondowania i innych czynności do wykonania w przeglądarkach bez obsługi websocket. Faye ma implementację pure-ruby, więc prawdopodobnie mógłbyś uzyskać dostęp do swojej warstwy modelu.

Edit:

Ponadto, jest to projekt, który łączy Faye z Rails. Jest całkiem nowy, ale może robić, co chcesz. Faye-Rails

1

Wolę event machine niż jakiekolwiek inne rozwiązanie. To nieco bardziej skomplikowane, ale możesz napisać bardziej wyrafinowany kod za pomocą automatu zdarzeń.

może Chcecie sprawdzić this peepcode screencast na maszynie zdarzeń

Powiązane problemy