বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

কার্যকরীভাবে মাল্টিকাস্ট মেসেজ সেন্ড (পাঠানো) করুন

GCM এর একটি কার্যকরী বৈশিষ্ট্য হচ্ছে একটি একক মেসেজের জন্য ১০০০ রিসিপিয়েন্ট (গ্রাহক) পর্যন্ত সাপোর্ট করে। এই সামর্থ আপনার পূর্নাঙ্গ ইউজার বেজে গুরুত্বপূর্ন মেসেজ পাঠানোর কাজটি সহজ করে দিয়েছে। উদাহরণস্বরূপ, মনে করুন আপনার ১,০০০,০০০ ইউজারকে একটি মেসেজ পাঠাতে হবে এবং আপনার সার্ভাও প্রতি সেকেন্ডে ৫০০ পাঠাতে পারে। আপনি যদি প্রতি মেসেজ মাত্র একটি একক রিসিপিয়েন্ট দিয়ে পাঠান, সেক্ষেত্রে সময় লাগবে ১,০০০,০০০/৫০০= ২,০০০ সেকেন্ড বা প্রায় আধা ঘন্টা। কিন্তু প্রতি মেসেজে যদি ১০০০ রিসিপিয়েন্ট যুক্ত (অ্যাটাচ) করা যায় তাহলে ১,০০০,০০০ জনকে একটি মেসেজ পাঠাতে মোট সময় কমে গিয়ে হবে (১,০০০,০০০/১০০০)/৫০০=২ সেকেন্ড। এটা শুধু কার্যকরই নয়, যথাসময়ে ডাটা পাঠানোর জন্য গুরুত্বপূর্ণ, যেমন প্রাকৃতিক বিপর্যয়ের সতর্কতা বা খেলাধুরার স্কোর যেখানে ৩০ মিনিটের বিরতি তথ্যকে অপ্রয়োজনীয় করে ফেলতে পারে।

এই কর্মপদ্ধতির সুবিধা নিয়া সহজ। আপনি যদি Java'র জন্য GCM helper library (http://developer.android.com/google/gcm/gs.html#libs) ব্যবহার করে থাকেন, তাহলে একটি একক রেজিস্ট্রেশন আইডি এর পরিবর্তে send বা sendNoRetry পদ্ধতিতে শুধু রেজিস্ট্রেশন আইডির একটি খরংঃ সংগ্রহ সরবরাহ করুন।

// This method name is completely fabricated, but you get the idea.
List regIds = whoShouldISendThisTo(message);

// If you want the SDK to automatically retry a certain number of times, use the
// standard send method.
MulticastResult result = sender.send(message, regIds, 5);

// Otherwise, use sendNoRetry.
MulticastResult result = sender.sendNoRetry(message, regIds);

Java'র বদলে একটি ল্যাঙ্গুয়েজের মধ্যে ওই GCM সাপোর্ট বাস্তবায়ন করার জন্য, নিম্নোক্ত হেডারগুলো দিয়ে একটি HTTP POST রিকোয়েস্ট তৈরী করুন:

  • Authorization: key=YOUR_API_KEY

  • Content-type: application/json

তারপর যে প্যারামিটার আপনি একটি অবজেক্টের মধ্যে চান তা এনকোড করুন, সকল রেজিস্ট্রেশন আইডি কি’র registration_ids অধীনে তালিকা করা। নিম্নোক্ত কোড চিত্রটি উদাহরণ হিসাবে দেয়া আছে। registration_ids ব্যতিত আর সকল প্যারামিটার ঐচ্ছিক, এবং data এর মধ্যে থাকা আইটেমগুলো ইউজার নির্ধারিত পেলোড কে প্রতিনিধিত্ব করে, GCM নির্ধারিত প্যারামিটার নয়। এই HTTP POST মেসেজের জন্য শেষ বিন্দু হবে https://android.googleapis.com/gcm/send

{ "collapse_key": "score_update",
   "time_to_live": 108,
   "delay_while_idle": true,
   "data": {
       "score": "4 x 8",
       "time": "15:16.2342"
   },
   "registration_ids":["4", "8", "15", "16", "23", "42"]
}

মাল্টিকাস্ট GCM মেসেজের ফরমেট সম্পর্কে আরও বিস্তারিত জানতে GCM গাইডের অধ্যায় Sending Messages (http://developer.android.com/google/gcm/gcm.html#send-msg) দেখুন।