यदि आपका ऐप सर्वर एक्सएमपीपी कनेक्शन सर्वर प्रोटोकॉल लागू करता है, तो यह उपयोगकर्ता के डिवाइस से क्लाउड पर अपस्ट्रीम संदेश प्राप्त कर सकता है। एक अपस्ट्रीम संदेश आरंभ करने के लिए, क्लाइंट ऐप एक अनुरोध भेजता है जिसमें निम्नलिखित शामिल हैं:
-
SENDER_ID@fcm.googleapis.com
प्रारूप में प्राप्तकर्ता ऐप सर्वर का पता। - एक संदेश आईडी जो प्रत्येक प्रेषक आईडी के लिए अद्वितीय होनी चाहिए।
- संदेश डेटा जिसमें संदेश के पेलोड के कुंजी-मूल्य जोड़े शामिल होते हैं।
जब यह डेटा प्राप्त करता है, तो FCM ऐप सर्वर को भेजने के लिए एक XMPP श्लोक बनाता है, भेजने वाले डिवाइस और ऐप के बारे में कुछ अतिरिक्त जानकारी जोड़ता है।
एकता क्लाइंट ऐप से अपस्ट्रीम संदेश भेजें
सर्वर पर अपस्ट्रीम संदेश भेजने के लिए, एक यूनिटी क्लाइंट ऐप एक संदेश तैयार करता है और दिखाए गए अनुसार Send
को कॉल करता है:
Firebase.Messaging.Message message;
message.To = SENDER_ID + "@fcm.googleapis.com";
message.MessageId = get_unique_message_id();
message.Data["my_message", "Hello World");
message.Data["my_action", "SAY HELLO");
message.TimeToLive = kTimetoLive;
Firebase.Messaging.FirebaseMessaging.Send(message);
कहाँ पे:
message.To
SENDER_ID@fcm.googleapis.com
प्रारूप में प्राप्त करने वाले ऐप सर्वर का पता है।message.MessageId
एक अद्वितीय संदेश पहचानकर्ता है। इस संदेश आईडी के आधार पर सभी संदेश रिसीवर कॉलबैक की पहचान की जाती है।message.Data
। डेटा तारों के रूप में कुंजी और मानों का नक्शा है।message.TimeToLive
निर्दिष्ट करता है कि डिवाइस के ऑफ़लाइन होने पर संदेश को FCM संग्रहण में कितनी देर (सेकंड में) रखा जाना चाहिए। अगर FCM इस समय सीमा समाप्त होने से पहले संदेश डिलीवर नहीं कर सकता है, तो यह क्लाइंट को एक सूचना वापस भेजता है।
FCM क्लाइंट लाइब्रेरी क्लाइंट ऐप पर संदेश को कैश करती है और क्लाइंट के सक्रिय सर्वर कनेक्शन होने पर उसे भेजती है। संदेश प्राप्त होने पर, FCM इसे ऐप सर्वर पर भेजता है।
ऐप सर्वर पर एक्सएमपीपी संदेश प्राप्त करें
जब FCM क्लाइंट ऐप से अपस्ट्रीम मैसेजिंग कॉल प्राप्त करता है, तो यह अपस्ट्रीम संदेश भेजने के लिए आवश्यक XMPP श्लोक उत्पन्न करता है। FCM category
और फ़ील्ड from
जोड़ता है, और फिर ऐप सर्वर को निम्न जैसा एक श्लोक भेजता है:
<message id=""> <gcm xmlns="google:mobile:data"> { "category":"com.example.yourapp", // to know which app sent it "data": { "hello":"world", }, "message_id":"m-123", "from":"REGID" } </gcm> </message>
एक एसीके संदेश भेजना
ऊपर की तरह एक अपस्ट्रीम संदेश के जवाब में, ऐप सर्वर को उसी कनेक्शन का उपयोग करना चाहिए जिसमें अद्वितीय संदेश आईडी वाला एसीके संदेश भेजा जा सके। यदि FCM को ACK प्राप्त नहीं होता है, तो वह ऐप सर्वर पर संदेश भेजने का पुनः प्रयास कर सकता है।
<message id=""> <gcm xmlns="google:mobile:data"> { "to":"REGID", "message_id":"m-123" "message_type":"ack" } </gcm> </message>
अपस्ट्रीम संदेश सिंटैक्स के बारे में अधिक जानकारी के लिए एक्सएमपीपी कनेक्शन सर्वर संदर्भ देखें।