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

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

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

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

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

सर्वर पर मैसेज अपस्ट्रीम भेजने के लिए, Unity क्लाइंट ऐप्लिकेशन एक मैसेज तैयार करता है और कॉल 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);

where:

  • 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>
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

ACK मैसेज भेजना

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

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

XMPP कनेक्शन सर्वर संदर्भ देखें देखें.