Operacje synchroniczne i asynchroniczne w RBM

Dokument ten wyjaśnia, jak platforma RBM obsługuje wysyłanie wiadomości i inne interakcje z interfejsem API, rozróżniając operacje synchroniczne i asynchroniczne.

Interakcje z interfejsem RBM API zwykle podążają za wzorcem synchronicznego żądania i odpowiedzi na poziomie HTTP. Wyniki wielu wywołań interfejsu API, zwłaszcza dostarczanie wiadomości, są jednak obsługiwane asynchronicznie za pomocą webhooków. Szczegółowe informacje znajdziesz w następnych sekcjach.

Wysyłanie wiadomości: żądanie synchroniczne, dostarczanie asynchroniczne

Żądanie interfejsu API phones.agentMessages.create jest przetwarzane synchronicznie z perspektywy interfejsu API. Gdy wyślesz żądanie HTTP do platformy RBM, serwer odpowie niemal natychmiast standardowym kodem stanu HTTP (takim jak 200 OK lub kod błędu), aby wskazać, czy żądanie zostało odebrane i czy jest prawidłowe.

Jednak faktyczne dostarczenie wiadomości do użytkownika końcowego jest przetwarzane asynchronicznie. Na ten proces mogą wpływać te czynniki:

  • Stan odbiorcy: użytkownik może być offline, mieć pustą baterię lub nie mieć włączonej usługi RCS.
  • Warunki w sieci: problemy z siecią operatora mogą opóźniać lub uniemożliwiać dostarczanie wiadomości.

Platforma RBM zapewnia aktualizacje stanu dostarczania wiadomości (np. potwierdzenia dostarczenia i potwierdzenie odczytu) asynchronicznie za pomocą webhooks. Dlatego, mimo że początkowe żądanie interfejsu API jest synchroniczne, do śledzenia dostarczania wiadomości należy używać asynchronicznych zdarzeń webhooka. Nie oczekuj natychmiastowego potwierdzenia stanu dostawy w odpowiedzi na wiadomość phones.agentMessages.create.

Inne interakcje z interfejsem RBM API

Większość innych interfejsów RBM opartych na protokole HTTP działa również w modelu synchronicznym żądania–odpowiedzi. Te interfejsy API zapewniają natychmiastową odpowiedź HTTP, która wskazuje stan żądania (sukces lub błąd). Chociaż żądanie jest synchroniczne, działania wynikające z niego mogą obejmować procesy asynchroniczne. Na przykład pomyślna odpowiedź na wywołanie interfejsu API w celu zaktualizowania informacji o usługodawcy nie oznacza, że aktualizacja zostanie natychmiast odzwierciedlona we wszystkich miejscach. Może wystąpić krótkie opóźnienie propagacji.

Punkt końcowy webhooka: zdarzenia asynchroniczne

Te zdarzenia są dostarczane asynchronicznie do punktu końcowego webhook:

  • Przychodzące wiadomości od użytkowników: platforma RBM przesyła przychodzące wiadomości od użytkowników do punktu końcowego webhooka. Pamiętaj, aby sprawdzać wiadomości przychodzące.
  • Powiadomienia o dostarczeniu i odczytaniu: powiadomienia o dostarczeniu i odczytaniu wiadomości są wysyłane przez webhooki.
  • Zdarzenia związane z rozmową: niektóre zdarzenia związane z rozmową, takie jak wskaźniki pisania, są wysyłane za pomocą webhooków.
  • Zdarzenia dotyczące wygaśnięcia i wycofania wiadomości: platforma RBM wysyła zdarzenia, aby potwierdzić, czy wycofanie wiadomości, której termin ważności upłynął, zostało zakończone pomyślnie.