किसी सदस्य को इवेंट भेजना
व्यक्तिगत इवेंट, जैसे ऑर्डर अपडेट, शेयर-डॉक्यूमेंट नोटिफिकेशन, या बैलेंस बदलाव, सीधे किसी सदस्य को भेजें। आपको हर व्यक्ति के लिए अलग चैनल बनाने की ज़रूरत नहीं है।
यह गाइड बताती है कि सदस्य इवेंट कैसे प्राप्त करें, उन्हें अपने सर्वर से कैसे भेजें, और सदस्य इवेंट और प्राइवेट चैनल में से कैसे चुनें।
शुरू करने से पहले
कनेक्शन को सदस्य पहचान के साथ साइन इन होना चाहिए। signin() और इसके authorization endpoint के लिए अधिकृत कनेक्शन आवश्यक करना देखें।
अपने ऐप में इवेंट प्राप्त करें
signin() सफल होने के बाद, bird.member पर इवेंट नाम बाइंड करें। वही नाम उपयोग करें जो आपका सर्वर event के रूप में भेजता है। सदस्य इवेंट के लिए किसी चैनल सब्सक्रिप्शन की ज़रूरत नहीं है।
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")
}क्लाइंट बाइंडिंग बनाए रखता है, रीकनेक्ट होने के बाद साइन इन करता है, और फिर सदस्य-इवेंट डिलीवरी फिर से शुरू करता है।
signin() तीनों क्लाइंट में asynchronous है। यह ब्राउज़र में promise लौटाता है, Swift में async का उपयोग करता है, और Kotlin में suspend करता है। इसे उपयुक्त asynchronous context से कॉल करें। एक कॉल बाद के रीकनेक्ट के लिए ऑटोमैटिक साइन-इन सक्रिय कर देती है।
अपने सर्वर से इवेंट भेजें
app ID, member ID, और इवेंट के साथ members.send कॉल करें:
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 वह member_id है जिसे आपके authorization endpoint ने साइन किया है। अगर यह member ID आवश्यकताओं को पूरा करता है तो अपने सिस्टम के मौजूदा identifier का उपयोग करें।
इवेंट कौन प्राप्त करता है
- उस सदस्य का हर कनेक्शन, उनके सभी टैब और डिवाइस पर। एक कॉल, चाहे कितने भी कनेक्शन हों।
- कोई और नहीं, भले ही किसी अन्य सदस्य का ऐप उसी इवेंट नाम को बाइंड करे।
- कुछ नहीं, अगर सदस्य का कोई लाइव कनेक्शन नहीं है। कॉल फिर भी सफल होती है क्योंकि डिलीवरी कतारबद्ध नहीं होती और occupancy की पुष्टि नहीं कर सकती। स्थायी नोटिफिकेशन स्टोर करें और सदस्य के लौटने पर उन्हें लोड करें।
सदस्य इवेंट या प्राइवेट चैनल
| सदस्य इवेंट का उपयोग करें | प्राइवेट चैनल का उपयोग करें |
|---|---|
| प्राप्तकर्ता ही गंतव्य है: व्यक्तिगत नोटिफिकेशन, अकाउंट बदलाव | गंतव्य एक साझा चीज़ है जिसे कई लोग देखते हैं: कोई डॉक्यूमेंट, ऑर्डर, या रूम |
| कोई चैनल नाम देने या authorize करने की ज़रूरत नहीं | आप चैनल का नाम देते हैं और हर सब्सक्रिप्शन को authorize करते हैं |
| कोई presence, कनेक्शन काउंट, या क्लाइंट इवेंट नहीं | Presence, कनेक्शन काउंट, और क्लाइंट इवेंट उपलब्ध हैं |
अगले कदम
- अधिकृत कनेक्शन में signin() और member auth endpoint शामिल हैं।
- सदस्य कनेक्शन समाप्त करना किसी सदस्य के हर कनेक्शन को बंद करता है।
- किसी सदस्य को इवेंट भेजें पूर्ण API संदर्भ है।
संबंधित संसाधन
इस विषय के लिए डॉक्यूमेंटेशन, गाइड और उदाहरणों के साथ आगे बढ़ें। संसाधन अंग्रेज़ी में हैं।
क्षमता जानेंRealtimeलर्निंग पाथ फ़ॉलो करेंBuild your first integrationइम्प्लीमेंटेशन गाइडSend your first realtime event
अभ्यास करें और इम्प्लीमेंटेशन ब्रीफ़ पाएँ