Próbuję utworzyć aplikację e-commerce ruby on rails, w której potencjalni klienci będą mogli złożyć zamówienie, a właściciel sklepu będzie mógł otrzymać zamówienie w czasie rzeczywistym. Sfinalizowane zamówienie zostanie zapisane w bazie danych (w tej chwili SQLite), a właściciel sklepu będzie miał otwarte okno przeglądarki, w którym nowe zamówienia pojawią się zaraz po sfinalizowaniu zamówienia. (Informacje o aplikacji: używam szkieletu HOBO i planuję hostować aplikację w Heroku)Jak mogę pobierać zaktualizowane rekordy w czasie rzeczywistym? (powiadomienia push?)
Rozważam teraz najlepszą technologię do wdrożenia tego, ponieważ oczekuje się, że aplikacja będzie miała wielu użytkowników wysyłanie wielu zamówień:
1) Każde okno przeglądarki odświeża stronę co X minut, ciągłe polerowanie serwera w poszukiwaniu nowych rekordów (nowe zamówienia). Oczywiście powoduje to duże obciążenie serwera.
2) Jak wyżej, ale odpytuj serwer za pomocą jakiejś architektury AJAX.
3) Użyj jakiejś technologii przekazywania serwera, na przykład asynchronicznego przesyłania wiadomości "komety". Znaleziony Juggernaut, jedynym problemem jest to, że używa Flasha i niestandardowych portów, a to może być problem, ponieważ moja aplikacja powinna być dostępna za firmowymi zaporami ogniowymi i NATem.
4) Sprawdzam również framework node.js, wydaje się być skuteczny dla tego rodzaju asynchronicznego przesyłania komunikatów, chociaż nie jest obsługiwany w Heroku.
Jaki jest najbardziej efektywny sposób wdrożenia tego rodzaju funkcjonalności? Czy jest może inna metoda, o której nie myślałem?
Dziękuję za poświęcony czas i pomoc!
Jak poszło z tym? :) – bxjx