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);

कहां:

  • 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 कनेक्शन सर्वर संदर्भ देखें देखें.