Een orderupdate kan twee afnemers hebben: je database en de klant die een bestelpagina bekijkt. Ze hebben verschillend herstelgedrag nodig als een verbinding wegvalt.
Je database heeft een herstelbaar record van het event nodig. De pagina van de klant heeft na opnieuw verbinden mogelijk alleen de laatste orderstatus nodig.
Wat zijn de vier opties?
Bird biedt webhooks, Realtime, een dashboard-eventstream en API-reads die je kunt pollen.
Gebruik webhooks om events op je server te ontvangen. Gebruik Realtime om verbonden clients bij te werken. De SSE-stream stuurt resourcewijzigingen naar een dashboardsessie. Met polling kan je applicatie resourcestatus op een schema uitlezen.
| Mechanisme | Richting | Authenticatie | Herstel na verbroken verbinding |
|---|---|---|---|
| Webhooks | Bird stuurt naar je server. | Je ontvanger verifieert een handtekening met het endpointgeheim. | Mislukte bezorgingen worden opnieuw geprobeerd. Gemiste events kunnen worden hergespeeld. |
| Realtime | Je server publiceert naar verbonden clients. | Clients verbinden met een app key. Privésubscripties vereisen backend-autorisatie. | Clients die opnieuw verbinden hebben statusherstel nodig. |
| SSE-stream | Bird stuurt resourcewijzigingen naar een dashboardsessie. | Een dashboardsessiecookie. | Lees de resource opnieuw voor de status. |
| Polling | Je applicatie vraagt Bird om status. | Een API-key. | Een latere read geeft de resourcestatus terug, zonder elke overgang te reconstrueren. |
Wanneer zijn webhooks het juiste antwoord?
Gebruik webhooks als je server op events moet reageren en gemiste bezorgingen moet herstellen.
Je registreert een publiek bereikbaar HTTPS-endpoint. Abonneer het op de eventtypen die je nodig hebt. Je ontvanger verifieert eerst de handtekening. Daarna slaat hij het event op. Hij bevestigt de bezorging voordat langzame verwerking begint.
Bird doet tot acht pogingen over ongeveer 27,5 uur vóór timingaanpassingen. Dat venster geeft een ontvanger tijd om van een storing te herstellen. Gemiste-eventreplay biedt een aanvullend herstelpad.
Dedupliceer op webhook-id omdat hetzelfde event herhaaldelijk kan aankomen. Vergelijk de voorvalstijden van events voordat je de status overschrijft, want events kunnen in een andere volgorde binnenkomen.
Mislukte webhook-retries behandelt herstellimieten. Duplicaatafhandeling behandelt het veilig opslaan van het event voordat je succes teruggeeft.
Wanneer gebruik ik Realtime?
Gebruik Realtime als een verbonden browser of applicatie updates nodig heeft terwijl je server ze publiceert.
Een channel is een benoemde bestemming waarop clients zich abonneren. Je server publiceert een event naar die naam, en geabonneerde clients ontvangen het via hun verbindingen. Hiermee kun je een bestelpagina, een chatgesprek of een voortgangsweergave bijwerken zonder te vernieuwen.
Realtime speelt niet elk event af dat een niet-verbonden client heeft gemist. Bewaar duurzame status in je database en herstel de weergave na opnieuw verbinden.
Een cache-channel bewaart het laatste event voor nieuwe abonnees zolang die gecachete waarde beschikbaar is. Het bewaart geen eventgeschiedenis. Als er twee updates plaatsvinden terwijl een client offline is, kan een gecachete laatste waarde de tussenliggende update niet herstellen.
De app key is zichtbaar in clientcode, dus een publiek channel kan worden gelezen door een bezoeker met die key. Een channel dat begint met private- vereist dat je backend de subscriptie autoriseert. Een presence--channel deelt ook de identiteiten van geabonneerde leden.
Channelnamen accepteren 1 tot 164 tekens met letters, cijfers en _ - = @ , . ;. Het prefix telt mee voor die limiet, dus neem het mee bij het valideren van een gegenereerde naam.
Realtime stuurt ook webhooks als een channel zijn eerste abonnee krijgt of zijn laatste verliest. Lidmaatschapswebhooks rapporteren welke leden zijn toegetreden of vertrokken. Configureer die via het dashboard. Publish/subscribe versus webhooks legt uit hoe de twee mechanismen samenhangen.
Heeft Bird een SSE-endpoint?
Bird heeft een SSE-endpoint, getEventsStream, voor geauthenticeerde dashboardsessies.
GET /v1/events/stream rapporteert wijzigingen aan API-resources. Een notificatie identificeert het resourcetype, de identifier en het voorvalstijdstip zodat het dashboard de gegevens van de resource kan ophalen.
Het endpoint accepteert een dashboardsessiecookie. Het accepteert geen API-key, dus gebruik webhooks of polling voor een API-key-integratie.
Wanneer is polling juist?
Gebruik polling als je resourcestatus nodig hebt, geen inkomende verzoeken kunt ontvangen of geen publiek event hebt voor de wijziging.
Poll om te controleren of een carrier je tolvrije nummer heeft goedgekeurd voor het verzenden van sms'jes. Bird heeft geen publiek webhook-event voor die verificatiebeslissing. Lees de verificatie op een schema via bird sms tfn verifications get, of de bijbehorende agenttool. De commando-operatie valt buiten de publieke API-bundel.
Polling werkt ook voor een netwerk dat uitgaande verzoeken toestaat maar geen ontvanger kan blootstellen. Als je alleen de huidige status nodig hebt, voorkomt het lezen van de resource dat je deze uit eerdere events moet opbouwen.
Reads en lists verbruiken rate-limitbudgetten per handelende credential binnen een organisatie. Wacht met opnieuw opvragen na een HTTP 429-antwoord. Stem het interval af op hoe snel je applicatie een wijziging moet ontdekken.
Webhooks, Realtime en rate limits behandelen de configuratie voor deze paden.
Wat moet ik kiezen?
Kies op basis van wie de update afneemt en wat een verbroken verbinding moet overleven.
- Webhooks als je server events moet verwerken met retries en gemiste-eventherstel.
- Realtime als verbonden schermen updates nodig hebben en na opnieuw verbinden kunnen herstellen vanuit opgeslagen status.
- Polling als je resourcestatus nodig hebt, geen ontvanger kunt blootstellen of geen publiek event hebt.
- De SSE-stream voor een geauthenticeerde Bird-dashboardsessie.
Kort gezegd
Kies webhooks voor server-side eventafhandeling.
Gebruik opnieuw proberen en gemiste-eventreplay als je server de bezorging na een storing moet herstellen.
Kies Realtime voor verbonden schermen.
Herstel de weergave vanuit opgeslagen status als de client opnieuw verbinding maakt.
Kies polling voor resourcestatus.
Poll als je geen ontvanger kunt blootstellen, geen publiek event hebt of alleen de status van de resource nodig hebt.
Gebruik SSE voor een Bird-dashboardsessie.
De stream vereist dashboardsessie-authenticatie.