यूनिटी क्लाइंट ऐप से अपस्ट्रीम संदेश भेजें

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

  • प्राप्तकर्ता ऐप सर्वर का पता SENDER_ID@fcm.googleapis.com प्रारूप में है।
  • एक संदेश आईडी जो प्रत्येक प्रेषक आईडी के लिए अद्वितीय होनी चाहिए।
  • संदेश डेटा में संदेश के पेलोड के कुंजी-मूल्य जोड़े शामिल होते हैं।

जब यह डेटा प्राप्त होता है, तो एफसीएम ऐप सर्वर को भेजने के लिए एक एक्सएमपीपी श्लोक बनाता है, जिसमें भेजने वाले डिवाइस और ऐप के बारे में कुछ अतिरिक्त जानकारी शामिल होती है।

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

सर्वर पर अपस्ट्रीम संदेश भेजने के लिए, यूनिटी क्लाइंट ऐप एक संदेश बनाता है और दिखाए गए अनुसार 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 स्टोरेज में रखा जाना चाहिए। यदि एफसीएम इस समाप्ति तक पहुंचने से पहले संदेश वितरित नहीं कर सकता है, तो यह ग्राहक को एक अधिसूचना भेजता है।

एफसीएम क्लाइंट लाइब्रेरी क्लाइंट ऐप पर संदेश को कैश करती है और क्लाइंट के पास सक्रिय सर्वर कनेक्शन होने पर इसे भेजती है। संदेश प्राप्त होने पर, एफसीएम इसे ऐप सर्वर पर भेजता है।

ऐप सर्वर पर एक्सएमपीपी संदेश प्राप्त करें

जब एफसीएम को क्लाइंट ऐप से अपस्ट्रीम मैसेजिंग कॉल प्राप्त होती है, तो यह अपस्ट्रीम संदेश भेजने के लिए आवश्यक एक्सएमपीपी श्लोक उत्पन्न करता है। एफसीएम 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>

एक ACK संदेश भेजा जा रहा है

उपरोक्त जैसे अपस्ट्रीम संदेश के जवाब में, ऐप सर्वर को अद्वितीय संदेश आईडी वाला ACK संदेश भेजने के लिए उसी कनेक्शन का उपयोग करना चाहिए। यदि FCM को ACK प्राप्त नहीं होता है, तो वह ऐप सर्वर पर संदेश भेजने का पुनः प्रयास कर सकता है।

<message id="">
  <gcm xmlns="google:mobile:data">
  {
      "to":"REGID",
      "message_id":"m-123"
      "message_type":"ack"
  }
  </gcm>
</message>

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