Loading Now

„APNS & FCM“ galutinis techninis vadovas

„APNS & FCM“ galutinis techninis vadovas


APNS ir FCM techninis vadovas

Plaukimo pranešimai yra Šiuolaikinių programų mobiliesiems gelbėjimo linijosrealiojo laiko atnaujinimų, perspėjimų ir individualizuotos patirties pristatymas-net tada, kai programa neveikia. Bet Kaip šie mažyčiai pranešimai keliauja po pasaulį iš jūsų serverio į vartotojo ekraną milisekundėmis?Jei esate kūrėjas, norintis Įsitraukitešis vadovas skirtas jums. Mes nulupsime sluoksnius ir parodysime Tiksliai, kaip veikia pranešimai po gaubtuAutentifikavimas nuolatiniams ryšiams.

Kodėl verta pranešti šiuolaikinėse programose

Plaukimo pranešimai nėra tik pranešimai – jie Vartotojo įsitraukimo varikliai. Nesvarbu Laikykite vartotojus prisijungę neišdesinant įrenginio išteklių.

Norėdami iš tikrųjų optimizuoti tiesioginį pristatymą, turite suprasti visą dujotiekį. Suskirstykime.

Kaip pranešimas keliauja: iš jūsų serverio į vartotojo ekraną

Aukšto lygio pranešimų pristatymo darbo eigos diagrama

5 kritiniai pranešimų pristatymo žingsniai

  1. Backend užklausos iniciacija
    Jūsų serveris sudaro pranešimų naudingą apkrovą (JSON struktūra) ir siunčia jį į tinkamą „Push Service API“ pabaigos tašką. Ši užklausa apima autentifikavimo kredencialus ir įrenginio identifikatorių (įrenginio prieigos raktas, skirtas APN, FCM registracijos prieigos raktas).
  2. Autentifikavimas ir eilės
    „Push“ paslauga patvirtina kredencialus ir pripažįsta užklausą su HTTP 200 būsena ir pranešimo ID. Tada pranešimas pateikiamas eilėje pristatymui. Svarbu: atsakymas į sėkmę rodo tik priėmimą į pristatymą, o ne tai, kad įrenginys jį dar gavo.
  3. Tinklo maršrutas
    Tiek APN, tiek FCM palaiko nuolatinius, saugius ryšius su įrenginiais. Paslauga nustato tikslinį įrenginį ir nukreipia pranešimą per savo tinklo infrastruktūrą.
  4. Įrenginio priėmimas
    Vartotojo įrenginys, tyliai klausantis nuolatinio ryšio, gauna pranešimų duomenis. Operacinė sistema pažadina tinkamą paslaugą pranešimui tvarkyti.
  5. Pranešimų apdorojimas ir rodymas
    Galiausiai pranešimas pateikiamas vartotojui arba apdorojama programa, atsižvelgiant į dabartinę programos būseną ir pranešimo turinio specifikacijas.

„Apple Push Notification Service“ (APNS)

„Apple Push Notification Service“ (APNS) Vidinė architektūra ir pristatymo vamzdynas

Autentifikavimo mechanizmai

APNS palaiko du autentifikavimo metodus:

  • Tokene pagrįstas autentifikavimas: naudoja JWT pasirašytą su APNS klavišu (naujesnis, rekomenduojamas)
  • Sertifikatus pagrįstas autentifikavimas: naudojami SSL sertifikatai („Legacy“ metodas)

Visada naudokite Tokene pagrįstas autentifikavimas geresniam masteliui ir saugumui.

Http/2 API integracija

APNS atskleidžia HTTP/2 API galinį tašką, kad būtų optimalus našumas. Jūsų serveris atidaro ryšį ir siunčia HTTP/2 POST užklausas su įrenginio prieigos raktu URL keliu ir JSON naudingu apkrovą korpuse. Kritinė geriausia praktika: palaikykite ryšius, susijusius su keliomis užklausomis, nes kiekvieno pranešimo atidarymo/uždarymo jungtys gali būti traktuojamos kaip bandymas atsisakyti paslaugų.

Pranešimo patvirtinimas ir atsakymo tvarkymas

Gavę užklausas, APNS iškart patvirtina:

  • Autentifikavimo kredencialai
  • Pranešimo struktūros vientisumas
  • Įrenginio žetono formatas
  • Naudingo krovinio dydis (daugiausia 4 kb)
  • Temos autorizacija

Įprasti APNS klaidų atsakymai apima:

  • 400 Blogas užklausa: netinkamai suformuotas naudingas krovinys JSON
  • 403 draudžiama: autentifikavimo klausimai
  • 410 dingo: netinkamas įrenginio prieigos raktas
  • 413 naudingas krovinys per didelis: viršijamas dydžio riba
  • 429 Per daug užklausų: viršijama normos riba

Nuolatinė ryšio architektūra

Kiekvienas „Apple“ įrenginys palaiko nuolatinį užšifruotą ryšį su APN, kai yra tinklo ryšys. Šis ryšys dažniausiai neveikia, naudojant minimalią galią, ir suaktyvėja tik tada, kai APNS pateikia pranešimus. Šis dizainas pašalina prietaisų poreikį apklausti pranešimus.

Pranešimų derinimas ir prioritetų tvarkymas

APNS palaiko pranešimų derinimą naudojant APNS-Collapse-ID. Keli pranešimai su tuo pačiu žlugimo ID rodo, kad rodomas tik naujausias pranešimas. APN gali atsisakyti pranešimų, kurių galiojimo laikas pasibaigia, arba pranešimai apie mažesnį prioritetą, jei įrenginiai išliks nepasiekiami.

Prioritetų lygiai:

  • Aukštas prioritetas: neatidėliotinas pristatymas, matomi vartotojo
  • Mažas prioritetas: fono atnaujinimai, paketas akumuliatoriaus optimizavimo pristatymas

„Firebase Cloud Messaging“ (FCM)

„Firebase Cloud Messaging“ (FCM) Vidinė architektūra ir pristatymo vamzdynas

Kodėl FCM taisyklės „Android Push“ pristatymas

„Firebase Cloud Messaging“ (FCM) yra Oficiali „Google“ pranešimo paslauga „Google“ „Android“ ir jis dominuoja dėl kelių priežasčių:

  • Gimtoji integracija su „Google Play“ paslaugomis
    FCM yra giliai integruota į „Android“ ekosistemą per „Google Play“ paslaugostodėl jis yra lengvas ir efektyvus baterijas. Kūrėjams nereikia valdyti pasirinktinių lizdų ar apklausų mechanizmų, nes FCM rankenos nuolatiniai ryšiai užkulisiuose.
  • Vienas nuolatinis visų programų ryšys
    Vietoj kiekvienos programos atidaro savo lizdą (kuris nusausins ​​akumuliatorių), „Android“ įrenginiai prižiūri vienas bendras ryšys su FCM serveriais. Šis vienas ryšys galioja pranešimus Kiekviena įrenginio programatinklo naudojimo optimizavimas ir pristatymo greičio gerinimas.
  • Kryžminės platformos galia
    Nors FCM yra optimizuotas „Android“, jis taip pat palaiko „iOS“ ir žiniatinklio pranešimai Pasinaudojant APN po gaubtu „iOS“ įrenginiams. Tai reiškia, kad kūrėjai gali naudoti Viena API nukreipta į kelias platformas.
  • Išplėstinės funkcijos
    FCM ne tik pagrindiniams pranešimams – jis palaiko:
  1. Temos pranešimų siuntimas: Siųskite pranešimus vartotojų grupėms (pvz., Visi vartotojai užsiprenumeravo „sportą“)
  2. Įrenginių grupės pranešimai: Siųsti visiems vartotojui priklausantiems įrenginiams
  3. Aukščiausi pranešimai: Leidžia pranešti klientui ir serverio pranešimus

Esmė: FCM Trumpas integracija, efektyvumas ir mastelio keitimas Padarykite tai numatytuoju „Android Push“ pranešimų pasirinkimu.

Kaip FCM tvarko milijonus pranešimų per minutę

Pateikti milijonus pranešimų realiuoju laiku skamba neįmanoma, tačiau „Google“ debesų infrastruktūra leidžia tai įvykti su šiais mechanizmais:

  • Ventiliatoriaus architektūra
    Kai siunčiate pranešimą į a tema ar keli įrenginiaiFCM nesiunčia vieno pranešimo vienu metu. Vietoj to, jis naudoja a ventiliatoriaus sistema tai klonų pranešimas ir pristato ją lygiagrečiai tūkstančiams ar milijonams prietaisų.
  • Apkrovos balansavimas per pasaulinius duomenų centrus
    FCM veikia „Google“ pasaulinis tinklasužtikrindamas Mažas latentinis Nustatydami pranešimus per artimiausią duomenų centrą į įrenginio regioną.
  • Eilėje pristatymas su „Retry Logic“
    Jei įrenginys neprisijungęs, FCM eilės pranešimas Iki 4 savaičiųbandymas, kai prietaisas vėl prisijungia. Tai garantuoja pristatymo patikimumą neperkraunant tinklo.
  • Pranešimo prioritetų nustatymas
  1. Aukštas prioritetas → nedelsiant pristatyti (gali pažadinti įrenginį)
  2. Normalus prioritetas → Pakartotinis pristatymas natūralių pabudimo ciklų metu, norint optimizuoti akumuliatorių
  • Horizontalus mastelio keitimas
    „Google“ infrastruktūra gali Mastelis horizontaliaitai reiškia, kad didėjant apkrovai, FCM automatiškai sukasi daugiau serverių, kad galėtų valdyti srautą.

Rezultatas: FCM gali apdoroti milijonai pranešimų per minutę su Minimalus latenimas ir maksimalus patikimumas.

Įrenginio valdymo būsenos: internete, Doze ir scenarijai neprisijungę

„Android“ įrenginiai Ne visada aktyvūs– Jie gali būti prisijungę, „Doze“ režimu arba visiškai neprisijungę. FCM protingai pritaiko pristatymą pagal įrenginio būseną :

Įrenginys internete ir aktyvus

  • Abu Aukštos ir normalios prioriteto pranešimaiyra nedelsiant pristatomi.
  • Puikiai tinka Pokalbių programos, perspėjimai realiuoju laiku .

Įrenginys „Doze“ režimu (akumuliatoriaus optimizavimas)

  • Normalaus prioriteto pranešimai yra laikomi FCM eilėje, kol įrenginys neveikia „Doze“ režimo.
  • Aukšto prioriteto pranešimai gali pažadinti įrenginį – bet „Google“ droselio piktnaudžiavimasNorėdami apsaugoti akumuliatoriaus veikimo laiką.

Pavyzdys: Pranešimų siuntimo programos naudoja aukštą prioritetą skubių pokalbių pranešimams.

Įrenginys neprisijungęs

  • Pranešimai yra saugoma FCM serveriuose iki 4 savaičių .
  • Kai įrenginys vėl prisijungia, FCM juos pristato.
  • Idealiai tinka Žemo tinklo scenarijai Kur vartotojas yra neprisijungęs kelias valandas ar dienas.

Takeaway: FCM Valstybės žinios pristatymo sistema užtikrina Patikimos žinutėsnepakenkiant akumuliatoriaus našumas .

Techniniai apribojimai ir našumas

  • APNS limitas: 4 kb naudingas krovinys
  • FCM limitas: 4 kb (2 kb temoms)
  • Įkainių apribojimai:

➔ APN – nėra sunkios ribos, tačiau piktnaudžiavimas droseliais

➔ FCM – ~ 600 000 pranešimų/min kiekvienam projektui

Geriausia patikimo pristatymo praktika

Laikykite naudingus krovinius liesos – Mažiau nei 4 kb
Naudokite aukštą prioritetą tik tada, kai reikia
Išvalykite negaliojančius žetonuspo klaidų
Įgyvendinkite bandymo logiką su eksponentine atlošu
Stebėkite sėkmės procentus dėl pristatymo klausimų

Išvada: Pagrindiniai pranešimai kaip profesionalas

Stumiami pranešimai yra Ne magija – jie yra inžinerijos šedevrai. Tiek APN, tiek FCM naudoja nuolatiniai ryšiai, intelektualios eilės ir optimizuoti pristatymo algoritmaisubalansuoti realaus laiko greitis ir akumuliatoriaus efektyvumas.

Seka Geriausia praktikaoptimizuodami naudingus krovinius ir grakščiai tvarkydami klaidas, sukursite a Greita, patikima ir patogi pranešimų sistema.



Source link

Gal būt praleidote

Draugai: - Marketingo paslaugos - Teisinės konsultacijos - Skaidrių skenavimas - Fotofilmų kūrimas - Karščiausios naujienos - Ultragarsinis tyrimas - Saulius Narbutas - Įvaizdžio kūrimas - Veidoskaita - Nuotekų valymo įrenginiai -  Padelio treniruotės - Pranešimai spaudai -