Jak działają powiadomienia web push?

3

Nie chodzi mi o to, jak je zrobić, tylko jak wygląda komunikacja między komputerami.

Jak otwieram stronę w przeglądarce, to sytuacja jest dla mnie zrozumiała:

  • odpytuję serwer DNS o domenę,
  • wysyłam żądanie pod określone IP,
  • serwer odpowiada na żądanie znając moje IP (ew. jeszcze tworzy sobie sesję),

Powiadomienia z androidowych aplikacji (z tego co doczytałam) idą przez serwery Googla, a że Andoid się Googlowi i tak ciągle melduje i raportuje, to wyjaśnia, że może on znać nasze IP.

Ale co z powiadomieniami ze stron WWW? Czy jeśli użytkownik zgodzi się na powiadomienia z kilkudziesięciu stron, to jego przeglądarka po uruchomieniu melduje się na kilkudziesięciu różnych serwerach? I co dalej? Dla każdego z nich tworzone jest coś w rodzaju sesji? A skąd serwer wie, czy urządzenie nadal jest aktywne? Itp.

Czy pamiętanie takich "sesji" nie jest aby za bardzo obciążające dla serwera? Co się dzieje, kiedy serwer wysyła powiadomienie? Powiedzmy, że mam 1000 subskrybentów. Czy w tym momencie serwer wykonuje 1000 połączeń?

1

póki co strzelam ale może to być realizowane przez websockety, a przy takiej ilości danych to nie będzie mocno obciążające nawet dla tysięcy kont

0

Tez strzelam

Jezeli przegladarka wspiera te powiadomienia to moze jakas baza jest subskrybentem na wszystkie powiadomienia. Wtedy przegladarka moze odpytywac tylko ten jeden serwer, ktory jest hubem

0

Chyba mialem racje

Who and What is the Push Service? A push service receives a network request, validates it and delivers a push message to the appropriate browser. If the browser is offline, the message is queued until the browser comes online.

https://developers.google.com/web/fundamentals/push-notifications/how-push-works

0
Freja Draco napisał(a):

Powiedzmy, że mam 1000 subskrybentów.

Tyle to masz w Signalu za free, a ściślej do 30000 :)

0

@stivens: nie tylko google, samemu też można zrobić, poza tym są też inne serwery, które można używać oczywiście płatne.

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