Android - MySQL - nasłuchiwanie

0

Witam, potrzebuje stworzyć aplikację na androida która w tle będzie nasłuchiwać zmian w bazie danych i jeśli określony rekord w bazie się zmieni to ma wykonać się określone zdarzenie? Czy ktoś już coś podobnego robił? Może ktoś coś doradzi?
Z góry Dziękuje

0

Czy to już istniejący system i musi być MySQL? W bazach NoSQL jest to łatwiejsze.
MySQL nie posiada mechanizmu CDC więc musiałbyś użyć na początek rozwiązań typu Debezium albo Maxwell żeby pchać zmiany do kolejek i twoja aplikacja dostawała by zmiany z tych kolejek.
Jeżeli ilość zmian jest umiarkowana to inną opcją jest zrobienie takiej kolejki na bazie i uzupełniać ją trigerem z tabelki źródłowej. Tutaj niestety trzeba odpytywać regularnie z aplikacji o nowe rekordy.

0

System dopiero powstaje więc MySQL nie jest wymogiem. Ale zastanawiam się jeszcze czy robić to na bazie czy może w jakiś w inny sposób przekazywać informacje, bo w sumie chodzi o to aby wywołać jakieś zdarzenie z innego urządzenia/komputera/strony.

0

No to zabierasz się za temat od d**y strony, poczytaj tu: https://firebase.google.com/docs/cloud-messaging

0

W Firebase nie trzeba nawet używać messagingu, wystarczy baza Firestore, przy zmianie danych aplikacja mobilna otrzyma informację o zmianach. Tak jak pisałem, jeżeli zdecydujesz się na NoSQL to w Firebase jest to bardzo proste.
https://firebase.google.com/docs/firestore/query-data/listen

0

Tylko że wysłanie komunikatu FCM to zwykły prosty json wysłany POST-em, a do Firestore musisz mieć skonfigurowanego klienta i całą bazę trzymać w chmurze Google (wersja darmowa ma swoje ograniczenia). Jak zawsze, wszystko kwestia potrzeb konkretnego projektu

0

Przecież FCM też jest na cloudzie. W Firestore nic nie musisz konfigurować, połączenie i nasłuchiwanie to dwie linijki.

0

A gdybym zrezygnował z nasłuchiwania i poszedł w stronę wysyłania do Androida powiadomień. Ogólnie chciałbym ze strony internetowej wysłać do androida informacje? Jakie technologię można wykorzystać? Czy można to zrobić przez PHP?

0

Ja chyba wolał bym wykorzystać http? Chciałbym aby to wyglądało w następujący sposób:

Aplikacja na androidzie jest cały czas uruchomiona i wykonuje jakieś akcje gdy ze strony zostanie wysłany jakiś komunikat?

0

Po prostu nie chciał bym wykorzystywać do tego oprogramowania Google.
Ktoś ma inny pomysł jak to zrobić?

1

No to Firebase. Na telefonie korzystasz ze standardowych bibliotek Google. A na serwerze masz właśnie http, wysyłasz tylko POST-a z php, a w tym czasie telefon otrzymuje powiadomienie. Prościej się już nie da, na serwerze nie musisz mieć żadnego oprogramowania od Google.

0

No dobrze a gdybym jednak chciał sobie to utrudnić i nie korzystać z Firebase? To jak to można zrobić?
Ktoś ? coś?

0

To nie można nic zrobić, chyba że chcesz, żeby twoja aplikacja rozładowywała baterię w telefonie

0

Akurat na baterii nie zależy mi bo to będzie na Android Tv na Mi BOX
Nie wierze że nie ma żadnej technologi oprócz Firebase?

1 użytkowników online, w tym zalogowanych: 0, gości: 1