Events an ein Mitglied senden
Senden Sie persönliche Events wie Bestellaktualisierungen, Benachrichtigungen zu geteilten Dokumenten oder Kontostandsänderungen direkt an ein Mitglied. Sie müssen keinen Channel für jede Person erstellen.
Diese Anleitung erklärt, wie Sie Mitglieder-Events empfangen, sie von Ihrem Server senden und zwischen Mitglieder-Events und privaten Channels wählen.
Bevor Sie beginnen
Die Verbindung muss mit einer Mitglieder-Identität angemeldet sein. Unter Autorisierte Verbindungen voraussetzen finden Sie signin() und den zugehörigen Autorisierungsendpunkt.
Events in Ihrer App empfangen
Nachdem signin() erfolgreich war, binden Sie den Event-Namen an bird.member. Verwenden Sie denselben Namen, den Ihr Server als event sendet. Mitglieder-Events erfordern kein Channel-Abonnement.
import { BirdRealtime } from "@messagebird/realtime";
const bird = new BirdRealtime({
appKey: "your-app-key",
region: "us1",
memberAuthEndpoint: "/bird/auth/member",
});
await bird.signin();
bird.member.bind("order.shipped", (data) => {
showToast(`Order ${data.order_id} is on its way`);
});import BirdRealtime
let bird = BirdRealtime(options: .init(
appKey: "your-app-key",
region: "us1",
memberAuthEndpoint: URL(string: "https://your-backend.example.com/bird/auth/member")
))
let me = try await bird.signin()
print("signed in as", me.memberId)
bird.member.bind("order.shipped") { data in
let orderId = (data as? [String: Any])?["order_id"] as? String ?? ""
showToast("Order \(orderId) is on its way")
}import com.bird.realtime.BirdRealtime
import com.bird.realtime.BirdRealtimeOptions
import kotlinx.serialization.json.jsonObject
import kotlinx.serialization.json.jsonPrimitive
val bird = BirdRealtime(
BirdRealtimeOptions(
appKey = "your-app-key",
region = "us1",
memberAuthEndpoint = "https://your-backend.example.com/bird/auth/member",
)
)
val me = bird.signin() // suspending
println("signed in as ${me.memberId}")
bird.member.bind("order.shipped") { data ->
val orderId = data?.jsonObject?.get("order_id")?.jsonPrimitive?.content
showToast("Order $orderId is on its way")
}Der Client behält die Bindung bei, meldet sich nach einer Wiederverbindung an und setzt dann die Zustellung von Mitglieder-Events fort.
signin() ist in allen drei Clients asynchron. Im Browser gibt es ein Promise zurück, in Swift verwendet es async, und in Kotlin wird es suspendiert. Rufen Sie es aus dem passenden asynchronen Kontext auf. Ein Aufruf aktiviert die automatische Anmeldung nach späteren Wiederverbindungen.
Ein Event von Ihrem Server senden
Rufen Sie members.send mit der App-ID, der Mitglieder-ID und dem Event auf:
await bird.realtime.members.send("rap_01krdgeqcxet5s7t44vh8rt9mg", "u_42", {
event: "order.shipped",
data: { order_id: "ord_123" },
});client.realtime.members.send(
"rap_01krdgeqcxet5s7t44vh8rt9mg",
"u_42",
event="order.shipped",
data={"order_id": "ord_123"},
)err = client.Realtime.Members.Send(context.Background(), "rap_01krdgeqcxet5s7t44vh8rt9mg", "u_42", bird.RealtimeMemberSendParams{
Event: "order.shipped",
Data: map[string]any{"order_id": "ord_123"},
})$bird->realtime->members->send('rap_01krdgeqcxet5s7t44vh8rt9mg', 'u_42', (new RealtimeMemberPublish())
->setEvent('order.shipped')
->setData(['order_id' => 'ord_123']));curl -X POST \
https://us1.platform.bird.com/v1/realtime/apps/rap_01krdgeqcxet5s7t44vh8rt9mg/members/u_42/events \
-H "Authorization: Bearer $BIRD_API_KEY" \
-H "X-Realtime-Key: $BIRD_REALTIME_KEY" \
-H "X-Realtime-Secret: $BIRD_REALTIME_SECRET" \
-H "Content-Type: application/json" \
-d '{ "event": "order.shipped", "data": { "order_id": "ord_123" } }'u_42 ist die member_id, die von Ihrem Autorisierungsendpunkt signiert wird. Verwenden Sie den bestehenden Bezeichner Ihres Systems, wenn er die Anforderungen an die Mitglieder-ID erfüllt.
Wer das Event empfängt
- Jede Verbindung, die das Mitglied hält, über alle Tabs und Geräte hinweg. Ein Aufruf, egal wie viele Verbindungen.
- Niemand sonst, selbst wenn die App eines anderen Mitglieds denselben Event-Namen bindet.
- Nichts, wenn das Mitglied keine aktiven Verbindungen hat. Der Aufruf ist trotzdem erfolgreich, da die Zustellung nicht in eine Warteschlange gestellt wird und keine Anwesenheit bestätigen kann. Speichern Sie dauerhafte Benachrichtigungen und laden Sie sie, wenn das Mitglied zurückkehrt.
Mitglieder-Event oder privater Channel
| Mitglieder-Event verwenden | Privaten Channel verwenden |
|---|---|
| Der Empfänger ist das Ziel: persönliche Benachrichtigungen, Kontoänderungen | Das Ziel ist ein gemeinsames Objekt, das mehrere Personen beobachten: ein Dokument, eine Bestellung, ein Raum |
| Kein Channel zu benennen oder zu autorisieren | Sie benennen den Channel und autorisieren jedes Abonnement |
| Keine Präsenz, Verbindungszähler oder Client-Events | Präsenz, Verbindungszähler und Client-Events sind verfügbar |
Nächste Schritte
- Autorisierte Verbindungen behandelt signin() und den Mitglieder-Autorisierungsendpunkt.
- Mitglieder-Verbindungen beenden schließt jede Verbindung, die ein Mitglied hält.
- Event an ein Mitglied senden ist die vollständige API-Referenz.
Related resources
Continue with the documentation, guides and examples for this topic. Resources are in English.
Explore the capabilityRealtimeFollow the learning pathBuild your first integrationImplementation guideSend your first realtime event
Try the practice and get an implementation brief