Catch up on highlights from Firebase at Google I/O 2023. Learn more

एकता क्लाइंट ऐप से अपस्ट्रीम संदेश भेजें

यदि आपका ऐप सर्वर XMPP कनेक्शन सर्वर प्रोटोकॉल लागू करता है, तो यह उपयोगकर्ता के डिवाइस से क्लाउड पर अपस्ट्रीम संदेश प्राप्त कर सकता है। एक अपस्ट्रीम संदेश आरंभ करने के लिए, क्लाइंट ऐप निम्नलिखित के साथ एक अनुरोध भेजता है:

  • 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 इसे ऐप सर्वर पर भेज देता है।

ऐप सर्वर पर XMPP संदेश प्राप्त करें

जब 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>

अपस्ट्रीम संदेश सिंटैक्स के बारे में अधिक जानकारी के लिए XMPP कनेक्शन सर्वर संदर्भ देखें।