Mam backend Python/Flask i Angular frontend dla mojej witryny. W zapleczu jest proces, który od czasu do czasu sprawdza SQS dla wiadomości i chcę, żeby to on wysłał powiadomienie do klienta, który może następnie zaktualizować kontroler Angular. Jaki jest najlepszy sposób na to, aby moje istniejące technologie?Czy powiadomienia push mogą być wysyłane za pomocą stosu AngularJS + z kolbą?
Odpowiedz
Aby móc naciskać na klienta, musisz w jakiś sposób wdrożyć obsługę gniazd internetowych. Jeśli chcesz zachować go w Pythonie/kolby, jest to tutorial jak zrobić z gevent:
http://www.socketubs.org/2012/10/28/Websocket_with_flask_and_gevent.html
w tym artykule, Geoffrey wspomina również kompatybilny bibliotekę SocketIO dla Pythona/gevent które mogą umożliwić do korzystania z biblioteki JS klienta SocketIO, zwanej "gevent-socketio".
Może to zmniejszyć ilość pracy, którą musisz wykonać, pod względem zgodności z różnymi przeglądarkami, ponieważ SocketIO zrobił już to dużo.
Tu jest całkiem dobry tutorial jak używać SocketIO w angularjs tak że można powiadomić model angularjs gdy zdarzenie pochodzi z SocketIO:
http://www.html5rocks.com/en/tutorials/frameworks/angular-websockets/
Jeśli nie chcesz udostępniać w backendu sieciowym można szukać hostowanej usługi, takiej jak PubNub lub Pusher, a następnie zintegrować je z AngularJS jako usługą. Możesz komunikować się z tymi usługami za pośrednictwem aplikacji Python (gdy pojawi się powiadomienie SQS), a oni powiadomią o tym wszystkich podłączonych klientów.
Wiem, że jest trochę późno, ale zrobiłem dokładnie to, o co prosisz (choć bez Angulara).
skończyło się osobny proces uruchomiony serwer websocket nazwie Autobahn, który słucha Redis pub/gniazda sub, kod jest here on github
To pozwala na wysyłanie powiadomień push do klientów z prawie wszystko który może uzyskać dostęp do redisu.
Więc kiedy chcę opublikować wiadomość do wszystkich moich klientów powiązanych wystarczy użyć Redis tak:
r = redis.Redis()
r.publish('broadcasts', "SOME MESSAGE")
ten pracował dość dobrze do tej pory. Obecnie nie mogę wysłać powiadomienia wypychania do określonego klienta. Ale jeśli posiadasz system uwierzytelniania lub coś w celu identyfikacji konkretnego użytkownika, możesz powiązać go z otwartymi stronami internetowymi, a następnie wysłać wiadomości bezpośrednio do konkretnego klienta :-)
Możesz oczywiście użyć dowolnego serwera sieciowego lub klient (jak socket.io lub sock.js), ale zadziałało to dla mnie znakomicie :-)
- 1. Powiadomienia push za pomocą serwera Railsowego
- 2. Czy hybrydowe aplikacje mobilne obsługują powiadomienia push?
- 3. Usunąć powiadomienia push api?
- 4. Powiadomienia push z wtyczką phonegap - cordova push i pushwoosh.com
- 5. Powiadomienia push: brak dźwięku
- 6. Powiadomienia Safari Push
- 7. Czy wiadomości wysyłane do obiektu w Objective-C mogą być monitorowane lub drukowane?
- 8. Powiadomienia push OneDrive
- 9. Powiadomienia push Gmaila w Railsach
- 10. Powiadomienia za pomocą MKStoreKit
- 11. Apple TestFlight i Push Powiadomienia
- 12. Powiadomienia push po zakończeniu aplikacji
- 13. Android - Powiadomienia push są włączone?
- 14. Jak włączyć/wyłączyć powiadomienia push z aplikacji?
- 15. Jak rejestrować push push od powiadomienia Parse Push
- 16. Powiadomienia push lub Socket.io ?, lub oba?
- 17. Czy powiadomienia push z systemem Android są niezawodne?
- 18. Zduplikowane powiadomienia push APNS Apple?
- 19. Odwracanie stosu w Pythonie za pomocą rekursji
- 20. Skonfiguruj stronę serwera Powiadomienia Push
- 21. Wymaga profilu informacyjnego z funkcją Powiadomienia push
- 22. Powiadomienia Apple Push w dużych rozmiarach
- 23. Powiadomienia push w usłudze Firebase - pracownik węzła:
- 24. Obraz serwowania z kolbą
- 25. Profile udostępniania + Powiadomienia push + Produkcja a programowanie
- 26. Internacjonalizacja za pomocą angularjs
- 27. iOS 8.1 Powiadomienia push Brak dźwięku
- 28. Powiadomienia w systemie IOS Push dla określonych użytkowników?
- 29. Czy funkcje asynchroniczne mogą być wbudowane?
- 30. Czy konstruktory C++ mogą być szablonami?