किसी सदस्य को इवेंट भेजना
ऑर्डर अपडेट, साझा दस्तावेज़ की सूचनाएँ या बैलेंस में बदलाव जैसे निजी इवेंट सीधे किसी सदस्य को भेजें। इसके लिए आपको हर व्यक्ति के लिए अलग चैनल बनाने की ज़रूरत नहीं है।
इस गाइड में बताया गया है कि सदस्य इवेंट कैसे प्राप्त करें, उन्हें अपने सर्वर से कैसे भेजें, और सदस्य इवेंट तथा निजी चैनल में से किसे चुनें।
शुरू करने से पहले
कनेक्शन किसी सदस्य पहचान के साथ साइन इन होना चाहिए। signin() और उसके ऑथराइज़ेशन एंडपॉइंट के लिए अधिकृत कनेक्शन अनिवार्य करना देखें।
अपने ऐप में इवेंट प्राप्त करें
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() एसिंक्रोनस है। ब्राउज़र में यह एक promise लौटाता है, Swift में async का उपयोग करता है और Kotlin में suspend होता है। इसे उपयुक्त एसिंक्रोनस संदर्भ से कॉल करें। एक ही कॉल के बाद, आगे दोबारा कनेक्ट होने पर साइन इन अपने-आप होता है।
अपने सर्वर से इवेंट भेजें
ऐप ID, मेंबर 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 है जिस पर आपका ऑथराइज़ेशन एंडपॉइंट हस्ताक्षर करता है। अगर आपके सिस्टम का मौजूदा पहचानकर्ता मेंबर ID की आवश्यकताओं को पूरा करता है, तो उसी का उपयोग करें।
इवेंट किसे मिलता है
- उस मेंबर का हर कनेक्शन, उसके सभी टैब और डिवाइस पर। कनेक्शन कितने भी हों, एक ही कॉल काफ़ी है।
- कोई और नहीं, भले ही किसी दूसरे मेंबर का ऐप उसी इवेंट नाम को बाइंड करे।
- अगर मेंबर का कोई सक्रिय कनेक्शन नहीं है, तो किसी को कुछ नहीं मिलता। कॉल फिर भी सफल होती है, क्योंकि डिलीवरी कतार में नहीं रखी जाती और यह पुष्टि नहीं कर सकती कि कोई कनेक्टेड है या नहीं। स्थायी सूचनाएँ स्टोर करें और मेंबर के लौटने पर उन्हें लोड करें।
मेंबर या प्राइवेट चैनल
| मेंबर इवेंट का उपयोग करें | प्राइवेट चैनल का उपयोग करें |
|---|---|
| प्राप्तकर्ता ही गंतव्य है: व्यक्तिगत सूचनाएँ, खाते में बदलाव | गंतव्य कोई साझा चीज़ है जिसे कई लोग देखते हैं: कोई दस्तावेज़, कोई ऑर्डर, कोई रूम |
| किसी चैनल को नाम देने या ऑथराइज़ करने की ज़रूरत नहीं | आप चैनल का नाम तय करते हैं और हर सब्सक्रिप्शन को अधिकृत करते हैं |
| प्रेज़ेंस, कनेक्शन की संख्या या क्लाइंट इवेंट उपलब्ध नहीं हैं | प्रेज़ेंस, कनेक्शन की संख्या और क्लाइंट इवेंट उपलब्ध हैं |
अगले कदम
- अधिकृत कनेक्शन में
signin()और मेंबर ऑथ एंडपॉइंट की जानकारी है। - मेंबर कनेक्शन समाप्त करना किसी मेंबर के सभी कनेक्शन बंद करता है।
- किसी मेंबर को इवेंट भेजें में API का पूरा संदर्भ है।
संबंधित संसाधन
इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।