বার্তাগুলি নির্ভরযোগ্যভাবে গ্রহণ করুন
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
যেকোন Android মেসেজিং অভিজ্ঞতার সবচেয়ে গুরুত্বপূর্ণ বৈশিষ্ট্য হল নির্ভরযোগ্যভাবে বার্তা গ্রহণ করা। সিস্টেমের স্বাস্থ্য এবং ব্যাটারি লাইফের দিকে নজর রেখে মেসেজিং প্রয়োগ করাও গুরুত্বপূর্ণ। আপনার অ্যান্ড্রয়েড অ্যাপ ধারাবাহিকভাবে, দক্ষতার সাথে এবং নির্ভরযোগ্যভাবে বার্তাগুলি গ্রহণ করে তা নিশ্চিত করতে এই দস্তাবেজটি আপনাকে মূল কৌশল এবং সরঞ্জামগুলির মাধ্যমে গাইড করে৷
মেসেজ ডেলিভারি মেকানিজম
নির্ভরযোগ্য মেসেজিংয়ের জন্য সর্বোত্তম পদ্ধতি আপনার অ্যাপের নির্দিষ্ট প্রয়োজনীয়তার উপর নির্ভর করে। যেমন কারণ বিবেচনা করুন:
- বর্তমান রিয়েল-টাইম চাহিদা
- বার্তা ফ্রিকোয়েন্সি
- ব্যাটারির সীমাবদ্ধতা
ফোরগ্রাউন্ড রিয়েল-টাইম মেসেজিং
যখন আপনার অ্যাপটি ফোরগ্রাউন্ডে থাকে, ব্যবহারকারী সাধারণত যুক্তিসঙ্গতভাবে উচ্চ পরিমাণের তথ্য আশা করে এবং এই ধরনের জিনিসগুলি জানতে চায়:
- যে ব্যক্তিকে বার্তা পাঠানো হচ্ছে তার ডিভাইসে কি উপস্থিত?
- তারা কি টাইপ করছে?
- তারা কি বার্তা পড়েছে?
এই ধরণের রিয়েল-টাইম ডেটা এক্সচেঞ্জ সমর্থন করার সাধারণ উপায় হল একটি ক্লায়েন্ট-সার্ভার প্রোটোকল ব্যবহার করা, যেমন WebSockets । WebSockets আপনার অ্যাপ এবং সার্ভারের মধ্যে স্থায়ী, পূর্ণ-দ্বৈত যোগাযোগ সক্ষম করে। OKHTTP লাইব্রেরিতে WebSocket প্রোটোকলের একটি বাস্তবায়ন রয়েছে যা আপনি আপনার Android ক্লায়েন্টে ব্যবহার করতে পারেন।
ফায়ারবেস রিয়েলটাইম ডেটাবেস একটি পূর্বনির্মাণ ব্যাকএন্ড এবং ক্লায়েন্ট ফ্রন্টএন্ড প্রদান করে যা আপনার পক্ষে এই ধরণের যোগাযোগ পরিচালনা করতে পারে। এটি তার ক্লায়েন্ট এবং সার্ভারের মধ্যে রিয়েল-টাইম যোগাযোগের জন্য অভ্যন্তরীণভাবে WebSockets ব্যবহার করে।
ব্যাকগ্রাউন্ড রিয়েল-টাইম মেসেজিং
যখন আপনার অ্যাপটি আর ফোরগ্রাউন্ডে থাকে না, তখন সিস্টেমের স্বাস্থ্য এবং ব্যাটারি লাইফকে বিরূপভাবে প্রভাবিত করে এমন কিছু করা এড়ানো গুরুত্বপূর্ণ। যেহেতু বার্তা বিজ্ঞপ্তিগুলি নির্ভরযোগ্যভাবে বিতরণ করা এখনও গুরুত্বপূর্ণ, তাই আমরা Firebase ক্লাউড মেসেজিং (FCM) ব্যবহার করার পরামর্শ দিই৷
FCM হল একটি ক্রস-প্ল্যাটফর্ম মেসেজিং সলিউশন যা দক্ষতার সাথে Android (এবং অন্যান্য) ডিভাইসে বিজ্ঞপ্তি এবং ডেটা বার্তা পাঠায়। এটি Google পরিষেবা রয়েছে এমন ডিভাইসগুলির জন্য Android ট্রান্সপোর্ট লেয়ার (ATL) ব্যবহার করে, যাতে আপনার অ্যাপটি আর চালু না থাকলে পরিবর্তনগুলি সম্পর্কে অবহিত করা যায়। বার্তা বিতরণের সময়োপযোগীতা ডিভাইসের অবস্থা, বার্তার অগ্রাধিকার এবং আপনার অ্যাপ ডোজ বা অ্যাপ স্ট্যান্ডবাই এর কারণে বিধিনিষেধ সাপেক্ষে কিনা তার উপর নির্ভর করে।
বার্তা বিতরণ নির্ভরযোগ্যতা উন্নত করুন
আপনার মেসেজ ডেলিভারি আরও শক্তিশালী করতে, এই কৌশলগুলি বিবেচনা করুন:
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2024-10-29 UTC-তে শেষবার আপডেট করা হয়েছে।
[[["সহজে বোঝা যায়","easyToUnderstand","thumb-up"],["আমার সমস্যার সমাধান হয়েছে","solvedMyProblem","thumb-up"],["অন্যান্য","otherUp","thumb-up"]],[["এতে আমার প্রয়োজনীয় তথ্য নেই","missingTheInformationINeed","thumb-down"],["খুব জটিল / অনেক ধাপ","tooComplicatedTooManySteps","thumb-down"],["পুরনো","outOfDate","thumb-down"],["অনুবাদ সংক্রান্ত সমস্যা","translationIssue","thumb-down"],["নমুনা / কোড সংক্রান্ত সমস্যা","samplesCodeIssue","thumb-down"],["অন্যান্য","otherDown","thumb-down"]],["2024-10-29 UTC-তে শেষবার আপডেট করা হয়েছে।"],[],[],null,["# Receive messages reliably\n\nReceiving messages reliably is the most critical feature of any Android\nmessaging experience. It's also important to implement messaging with an eye on\nsystem health and battery life. This document guides you through the key\nstrategies and tools to ensure your Android app receives messages consistently,\nefficiently, and reliably.\n\nMessage delivery mechanisms\n---------------------------\n\nThe best approach for reliable messaging depends on your app's specific\nrequirements. Consider factors like:\n\n- Current real-time needs\n- Message frequency\n- Battery constraints\n\n### Foreground real-time messaging\n\nWhen your app is in the foreground, the user typically expects a reasonably high\nvolume of information, and wants to know things like:\n\n- Is the person being messaged present on their device?\n- Are they typing?\n- Have they read the message?\n\nThe typical way to support this sort of real-time data exchange is to use a\nclient-server protocol, such as [WebSockets](https://en.wikipedia.org/wiki/WebSocket). WebSockets enable\npersistent, full-duplex communication between your app and a server. The [OKHTTP\nlibrary](https://square.github.io/okhttp/) includes an [implementation of the WebSocket\nprotocol](https://square.github.io/okhttp/3.x/okhttp/okhttp3/WebSocket.html) that you can use in your Android client.\n\nThe [Firebase Realtime Database](https://firebase.google.com/docs/database) provides a prebuilt backend and\nclient frontend that can handle this sort of communication on your behalf. It\nuses WebSockets internally for real-time communication between its client and\nserver.\n\n### Background real-time messaging\n\nWhen your app is no longer in the foreground, it's critical to avoid doing\nthings that adversely impact system health and battery life. Since it's still\nimportant to deliver message notifications reliably, we recommend making use of\n[Firebase Cloud Messaging (FCM)](https://firebase.google.com/products/cloud-messaging).\n\nFCM is a cross-platform messaging solution that efficiently sends notifications\nand data messages to Android (and other) devices. It leverages the Android\nTransport Layer (ATL) for devices that have Google services, so that your app\ncan be notified of changes when it is no longer running. The timeliness of\nmessage delivery depends on the state of the device, the priority of the\nmessage, and whether your app is subject to restrictions because of [doze](/training/monitoring-device-state/doze-standby#understand_doze) or\n[app standby](/training/monitoring-device-state/doze-standby#understand_app_standby).\n\n- [Learn how to integrate FCM into your Android project](https://firebase.google.com/docs/android/setup)\n- [Explore the FCM (server) API and its capabilities](https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages)\n\nEnhance message delivery reliability\n------------------------------------\n\nTo make your message delivery even more robust, consider these strategies:\n\n- Use [`WorkManager`](/develop/background-work/background-tasks/persistent/getting-started) to [periodically wake up your app](/develop/background-work/background-tasks/persistent/getting-started/define-work#schedule_periodic_work) to check for new messages when the device has [network connectivity](/develop/background-work/background-tasks/persistent/getting-started/define-work#work-constraints), and (ideally) when the device is connected to a charger.\n- Get [insight into FCM delivery](https://firebase.google.com/docs/cloud-messaging/understand-delivery?platform=android) with tools such as the [Firebase console](https://firebase.google.com/console) and [Android SDK delivery\n metrics](https://firebase.google.com/docs/reference/fcmdata/rest/v1beta1/projects.androidApps.deliveryData) from the [FCM Data API](https://firebase.google.com/docs/reference/fcmdata/rest).\n- Use logging mechanisms and tools like [Firebase Crashlytics](https://firebase.google.com/docs/crashlytics) to monitor and troubleshoot message delivery issues."]]