আইওএস পুশ বিজ্ঞপ্তিগুলি কীভাবে কাজ করে?


102

ডিভাইসটিকে কোনও সার্ভারের পোলিং করার প্রয়োজন ছাড়াই আইওএস "পুশ" বিজ্ঞপ্তিগুলি কোনও নির্দিষ্ট ডিভাইসে কীভাবে সরবরাহ করা হয়?

উদাহরণস্বরূপ, ধরা যাক আমি ফেসবুকে একটি নতুন বার্তা পেয়েছি। ফেসবুক অ্যাপলকে জানিয়েছে যে আমার ডিভাইসটি যেমন একটি বিজ্ঞপ্তি পায়। তবে অ্যাপল কীভাবে জানবে যে কোনও ডিভাইস / আইপিটি বার্তাটির দিকে ঠেলাবে?


4
@ ওয়েইন আমি প্রযুক্তিগত স্তরে বিশদ ব্যাখ্যা খুঁজছি। নিবন্ধটি অত্যন্ত উচ্চ স্তরের। সুতরাং আমার ডিভাইসটি সর্বদা অ্যাপলের পুশ সার্ভারের সাথে একটি মুক্ত সংযোগ বজায় রাখে?
অ্যান্ডি হিন

আমি অ্যান্ড্রয়েড পুশের সাথে আরও পরিচিত, তবে সাধারণত আপনি যখন অ্যাপটি ইনস্টল করেন তখন এটি অ্যাপলের সাথে একটি অনন্য আইডি দিয়ে ডিভাইসটিকে নিবন্ধভুক্ত করে। তারপরে ফেসবুক অ্যাপলটিতে কোনও বার্তা পাঠালে অ্যাপল এটিকে ডিভাইসগুলির অনন্য আইডিতে ফরোয়ার্ড করবে।
পানামা জ্যাক

6
@ প্যাক জ্যাপ, তবে আমার ডিভাইসটি ক্রমাগতভাবে বিভিন্ন সেল টাওয়ার, বিভিন্ন ওয়াইফাই নেটওয়ার্ক পরিবর্তন করে, অ্যাপল কীভাবে আমার অনন্য আইডির আইপি জানতে পারে?
অ্যান্ডি হিন

এই প্রশ্নটি জিজ্ঞাসা করার জন্য ধন্যবাদ। আমি ঠিক একই জিনিস বুঝতে চেয়েছিলেন। আমি এখানে আমার প্রশ্নের উত্তরটি বিশ্বাস করি: stackoverflow.com/questions/18859732/…
মাইটিমাউস

@ অ্যান্ডহিন ডিভাইস ওএস (আইওএস) জানে যে কোন এপিএন সার্ভার (গুলি) বৈধ। ডিভাইসটি এই সার্ভারগুলিতে সংযুক্ত হচ্ছে এবং একটি সংযোগ খোলা রাখছে। এই সংযোগটি সম্ভবত ডিভাইস-আইডি এবং অন্যান্য মেটা-ডেটা (ফোন নম্বর) এর সাথে সম্পর্কিত। যখন কোনও বার্তাটি "ধাক্কা" দেওয়ার দরকার হয়, তখন এপিএনগুলি সঠিক সংযোগটি আবিষ্কার করে এবং এটি ইতিমধ্যে খোলা সংযোগটি নামিয়ে দেয়। সুতরাং APN গুলি কোনও ডিভাইসে কোনও সংযোগ স্থাপনের চেষ্টা করে না, এটি সর্বদা ডিভাইস যা সেই সংযোগটি খোলে। প্রতি ডিভাইসে একটি সংযোগ।
টড

উত্তর:


49

আমার পক্ষে একটি মন্তব্য করা খুব বেশি হয়েছিল।

ডকুমেন্টেশন থেকে।

অ্যাপল পুশ নোটিফিকেশন পরিষেবা (এপিএন) সেই বিজ্ঞপ্তিগুলি পেতে নিবন্ধভুক্ত অ্যাপ্লিকেশনগুলি থাকা ডিভাইসগুলিতে পুশ বিজ্ঞপ্তিগুলি প্রচার করে। প্রতিটি ডিভাইস পরিষেবার সাথে একটি অনুমোদিত এবং এনক্রিপ্ট করা আইপি সংযোগ স্থাপন করে এবং এই অবিচ্ছিন্ন সংযোগের উপর বিজ্ঞপ্তিগুলি গ্রহণ করে। সরবরাহকারীরা তাদের ক্লায়েন্ট অ্যাপ্লিকেশনগুলির উদ্দেশ্যে আগত ডেটা পর্যবেক্ষণ করার সময় একটি অবিচ্ছিন্ন এবং সুরক্ষিত চ্যানেলের মাধ্যমে এপিএনগুলির সাথে সংযোগ স্থাপন করে। যখন কোনও অ্যাপ্লিকেশনের জন্য নতুন ডেটা আসে, সরবরাহকারী চ্যানেলের মাধ্যমে এপিএনগুলিতে একটি বিজ্ঞপ্তি প্রস্তুত করে এবং প্রেরণ করে, যা লক্ষ্য ডিভাইসে বিজ্ঞপ্তিটি ধাক্কা দেয় ..

আমি আরও তথ্যের জন্য ডকুমেন্টেশন পড়ার পরামর্শ দিচ্ছি এবং কীভাবে ব্যবহার এবং কনফিগার করব। সব আছে।

বিজ্ঞপ্তি পুশ করুন


উত্তরের জন্য ধন্যবাদ.
মাইটিমাউস

7
সুতরাং অ্যাপল আপনার ডিভাইসে স্থির আইপি বজায় রাখে?
সিএমসিডিগ্রাগনকাই

আমার সার্ভারকে প্রতিটি টার্গেট ডিভাইসটির জন্য এপিএনএসে একটি বিজ্ঞপ্তি পাঠাতে হবে তা বুঝতে পেরে আমি অবাক হয়ে গেলাম! :(
ভ্লাদিমির

4
@CMCDragonkai ডিভাইসটি সার্ভারটি নয়, সংযোগ স্থাপন করে।
হাইটেকম্পিউটারজেক

7
সুতরাং ডিভাইসগুলি সর্বদা এপিএন পরিষেবার সাথে দীর্ঘ পোলিং / সকেটের ধরণের সংযোগ বজায় রাখে? যদি এমনটি হয় তবে এপিএন পরিষেবাটি এত সংযোগগুলি কীভাবে পরিচালনা করবে - যদি কোনও সার্ভার 50k সংযোগ রাখতে পারে এবং সর্বদা 500 মিলিয়ন ব্যবহারকারী থাকে তবে পরিষেবাটি কমপক্ষে 10000 সার্ভারের প্রয়োজন। এটি কি বাস্তব পরিস্থিতি?
AV94

91

প্রতিটি ডিভাইস তাদের নিজস্ব অনন্য ডিভাইস টোকেন ব্যবহার করে ডেটা দিয়ে আপডেট করা যায়। এই ছবিটি সব কিছু ব্যাখ্যা করে। ।

এখানে চিত্র বর্ণনা লিখুন


ডিভাইস টোকনের ব্যবহার কী? এটি এপিএনএস সার্ভার এবং অ্যাপের মধ্যে বা অন্য কোথাও যোগাযোগ এনক্রিপ্ট করার জন্য ব্যবহার করা হয়?
মুগেন

4
@ মুগেন: ডিভাইস টোকেনটি এপিএনএস ব্যবহার করে কোন ডিভাইসটি সরবরাহকারীর মাধ্যমে প্রেরিত পে-লোড ফরোয়ার্ড করার কথা তা সনাক্ত করতে ব্যবহার করে!
ডি

@ করণ - কোনও বিজ্ঞপ্তি যা কোনও ব্যবহারকারীর (যেমন "আরে ব্যবহারকারী আপনার একটি বার্তা আছে!") এবং যেগুলি কোনও অ্যাপ্লিকেশন জাগ্রত করার জন্য এবং নিঃশব্দে কিছু ব্যাকগ্রাউন্ড প্রক্রিয়াজাতকরণ করার জন্য বোঝানো হয়েছে তার মধ্যে কি পার্থক্য রয়েছে?
হাওিক্যাম্প

@ হাউইইচ্যাম্প আপনি যদি পুশ বিজ্ঞপ্তি ব্যবহার করছেন তবে অ্যাপটি চলমান থাকলে আপনি যখনই কোনও বিজ্ঞপ্তি পেয়েছেন তখন আপনাকে অবহিত করা হবে। সক্রিয় বিজ্ঞপ্তির বিশদগুলি অ্যাক্সেসযোগ্য, যখন ব্যবহারকারী বিজ্ঞপ্তি কেন্দ্র থেকে বিজ্ঞপ্তিটি ট্যাপ করে অ্যাপ্লিকেশন চালু করে। এই সময়ের মধ্যে আপনি যে প্রক্রিয়াগুলি করতে চান তা সম্পাদন করতে পারেন।
করণ আলঙ্গাত

@ করণআলাঙ্গাত, ব্যাজ কাউন্ট এখানে কীভাবে পরিচালনা করা হয়? সার্ভার এটি সম্পর্কে কীভাবে জানে?
জিভিশর্মা

23

এপিএনগুলির ওভারভিউ

অ্যাপল পুশ নোটিফিকেশন পরিষেবা (এপিএন) হ'ল রিমোট নোটিফিকেশন বৈশিষ্ট্যটির কেন্দ্রস্থল। আইওএস (এবং, অপ্রত্যক্ষভাবে, ওয়াচওএস), টিভিএস এবং ম্যাকোস ডিভাইসে তথ্য প্রচার করার জন্য অ্যাপ বিকাশকারীদের পক্ষে এটি একটি শক্তিশালী, সুরক্ষিত এবং অত্যন্ত দক্ষ পরিষেবা।

কোনও ব্যবহারকারীর ডিভাইসে আপনার অ্যাপ্লিকেশনটির প্রারম্ভিক সময়ে, সিস্টেমটি স্বয়ংক্রিয়ভাবে আপনার অ্যাপ্লিকেশন এবং এপিএনগুলির মধ্যে স্বীকৃত, এনক্রিপ্ট করা এবং অবিচ্ছিন্ন আইপি সংযোগ স্থাপন করে। এই সংযোগটি আপনার অ্যাপ্লিকেশনটিকে বিজ্ঞপ্তিগুলি গ্রহণ করতে সক্ষম করতে সেটআপ সম্পাদনের অনুমতি দেয়, যেমন রিমোট নোটিফিকেশন সহায়তা কনফিগারেশনে ব্যাখ্যা করা হয়েছে।

বিজ্ঞপ্তি প্রেরণের সংযোগের অর্ধেক অংশ a সরবরাহকারী সার্ভার এবং এপিএনগুলির মধ্যে অবিচ্ছিন্ন, সুরক্ষিত চ্যানেল আপনার অনলাইন বিকাশকারী অ্যাকাউন্টে কনফিগারেশন এবং অ্যাপল সরবরাহিত ক্রিপ্টোগ্রাফিক শংসাপত্রের ব্যবহার প্রয়োজন। একটি সরবরাহকারী হ'ল একটি সার্ভার, যা আপনি মোতায়েন এবং পরিচালনা করেন, যে আপনি এপিএনগুলির সাথে কাজ করার জন্য কনফিগার করেছেন। চিত্র 1-1 একটি দূরবর্তী বিজ্ঞপ্তির জন্য সরবরাহের পথ দেখায়।

চিত্র 1-1 সরবরাহকারী থেকে কোনও অ্যাপ্লিকেশনটিতে একটি দূরবর্তী বিজ্ঞপ্তি সরবরাহ করা

চিত্র: .. / আর্ট / রেমোট_নোটিফ_সিম্পল.জেপিজি

আপনার সরবরাহকারী এবং আপনার অ্যাপ্লিকেশনটিতে পুশ নোটিফিকেশন সেটআপ সম্পূর্ণ হওয়ার সাথে সাথে আপনার সরবরাহকারীরা এপিএনগুলিতে বিজ্ঞপ্তি অনুরোধগুলি প্রেরণ করতে পারে। এপিএন গুলি প্রতিটি লক্ষ্যযুক্ত ডিভাইসে অনুরূপ নোটিফিকেশন পেডলোড দেয়। একটি বিজ্ঞপ্তি পাওয়ার পরে, সিস্টেমটি ডিভাইসের উপযুক্ত অ্যাপ্লিকেশনটিতে পেলোড সরবরাহ করে এবং ব্যবহারকারীর সাথে মিথস্ক্রিয়া পরিচালনা করে।

যদি আপনার অ্যাপ্লিকেশনটির জন্য কোনও বিজ্ঞপ্তি ডিভাইস চালিত তবে অ্যাপটি চলমান না হয়ে আসে তবে সিস্টেমটি এখনও বিজ্ঞপ্তিটি প্রদর্শন করতে পারে। যদি এপিএন একটি বিজ্ঞপ্তি পাঠায় ডিভাইসটি চালিত হয়, তবে এপিএনগুলি বিজ্ঞপ্তিটি ধরে রাখে এবং পরে আবার চেষ্টা করে (বিশদর জন্য, পরিষেবার মান, স্টোর-এবং-ফরওয়ার্ড এবং কোলেসড নোটিফিকেশন দেখুন)।

সরবরাহকারীর দায়িত্ব

আপনার সরবরাহকারীর সার্ভারগুলির এপিএন সহ অংশ নেওয়ার জন্য নিম্নলিখিত দায়িত্ব রয়েছে:

  • এপিএন এর মাধ্যমে, বিশ্বব্যাপী অনন্য, অ্যাপ্লিকেশন-নির্দিষ্ট ডিভাইস টোকেন এবং ব্যবহারকারীর ডিভাইসে আপনার অ্যাপ্লিকেশনগুলির উদাহরণ থেকে অন্যান্য প্রাসঙ্গিক ডেটা প্রাপ্ত। এটি সরবরাহকারীকে আপনার অ্যাপ্লিকেশনের প্রতিটি চলমান উদাহরণ সম্পর্কে জানতে অনুমতি দেয়।
  • আপনার নোটিফিকেশন সিস্টেমের নকশা অনুসারে নির্ধারণ করা হচ্ছে, যখন প্রতিটি ডিভাইসে দূরবর্তী বিজ্ঞপ্তি প্রেরণ করা প্রয়োজন।
  • এপিএনগুলিতে বিজ্ঞপ্তি অনুরোধগুলি বিল্ডিং এবং প্রেরণ, প্রতিটি অনুরোধে একটি নোটিফিকেশন পেলোড এবং বিতরণ তথ্য রয়েছে; এপিএনগুলি তারপরে আপনার পক্ষে উদ্দেশ্যযুক্ত ডিভাইসের সাথে সম্পর্কিত বিজ্ঞপ্তিগুলি সরবরাহ করে।

প্রতিটি রিমোট নোটিফিকেশন অনুরোধের জন্য কোনও সরবরাহকারী প্রেরণ করে, এটি অবশ্যই:

  • রিমোট নোটিফিকেশন পেইলড তৈরির ক্ষেত্রে বর্ণিত বিজ্ঞপ্তির পে-লোডযুক্ত একটি JSON অভিধান তৈরি করুন।
  • পে-লোড, একটি বিশ্বব্যাপী-অনন্য ডিভাইস টোকেন এবং একটি HTTP / 2 অনুরোধে অন্যান্য বিতরণ তথ্য যুক্ত করুন। ডিভাইস টোকেন সম্পর্কিত তথ্যের জন্য, এপিএন-থেকে-ডিভাইস সংযোগ ট্রাস্ট এবং ডিভাইস টোকেনগুলি দেখুন। HTTP / 2 অনুরোধ ফর্ম্যাট, এবং APN গুলি থেকে সম্ভাব্য প্রতিক্রিয়া এবং ত্রুটি সম্পর্কে তথ্যের জন্য, APNs এর সাথে যোগাযোগ করা দেখুন।
  • টেকন বা শংসাপত্রের আকারে ক্রিপ্টোগ্রাফিক শংসাপত্রাদি সহ একটি স্থির, সুরক্ষিত চ্যানেলের মাধ্যমে এপিএনগুলিতে HTTP / 2 অনুরোধ প্রেরণ করুন।
  • সুরক্ষা আর্কিটেকচারে এই সুরক্ষিত চ্যানেলটি স্থাপন করা বর্ণনা করা হয়েছে।

একাধিক সরবরাহকারী ব্যবহার করে

চিত্র 1-2 এপিএনগুলি আপনার অ্যাপ্লিকেশনগুলি চালিত ডিভাইসের জন্য সক্ষম করে এমন ভার্চুয়াল নেটওয়ার্কের ধরণের চিত্রিত করে। বিজ্ঞপ্তি লোড পরিচালনা করতে, আপনি সাধারণত একাধিক সরবরাহকারী মোতায়েন করবেন, প্রত্যেকে এপিএনগুলিতে নিজস্ব অবিচ্ছিন্ন এবং সুরক্ষিত সংযোগ সহ। তারপরে প্রতিটি সরবরাহকারী কোনও ডিভাইস লক্ষ্য করে বিজ্ঞপ্তি অনুরোধ পাঠাতে পারে যার জন্য সরবরাহকারীর বৈধ ডিভাইস টোকেন রয়েছে।

চিত্র 1-2 একাধিক ডিভাইসে একাধিক সরবরাহকারী থেকে দূরবর্তী বিজ্ঞপ্তি পুশ করছে

চিত্র: .. / আর্ট / রেমোট_নোটিফ_মલ્ટিয়াল.জেপিজি

পরিষেবার মান, স্টোর-এবং-ফরওয়ার্ড এবং কোলেসড নোটিফিকেশন

অ্যাপল পুশ নোটিফিকেশন পরিষেবাদিতে একটি মানের মানের পরিষেবার (QoS) উপাদান রয়েছে যা স্টোর এবং ফরোয়ার্ড ফাংশন সম্পাদন করে। যদি এপিএন একটি বিজ্ঞপ্তি সরবরাহ করার চেষ্টা করে এবং গন্তব্য ডিভাইসটি অফলাইনে থাকে, এপিএন গুলি একটি সীমিত সময়ের জন্য বিজ্ঞপ্তিটি সংরক্ষণ করে এবং যখন ডিভাইসটি আবার উপলব্ধ হয় তখন তা সরবরাহ করে। এই উপাদানটি প্রতি ডিভাইস এবং প্রতি অ্যাপ্লিকেশনটিতে সর্বাধিক সাম্প্রতিক বিজ্ঞপ্তি সঞ্চয় করে। যদি কোনও ডিভাইস অফলাইনে থাকে তবে সেই ডিভাইসটিকে লক্ষ্য করে একটি বিজ্ঞপ্তি অনুরোধ পাঠানোর ফলে পূর্ববর্তী অনুরোধটি বাতিল হয়ে যায়। যদি কোনও ডিভাইস দীর্ঘ সময়ের জন্য অফলাইনে থাকে, তবে এপিএনগুলিতে এর সমস্ত সঞ্চিত বিজ্ঞপ্তিগুলি বাতিল করা হয়।

অনুরূপ বিজ্ঞপ্তিগুলির coalescing অনুমতি দিতে, আপনি একটি বিজ্ঞপ্তি অনুরোধের মধ্যে একটি পতন সনাক্তকারী অন্তর্ভুক্ত করতে পারেন। সাধারণত, কোনও ডিভাইস অনলাইনে থাকাকালীন, প্রতিটি বিজ্ঞপ্তি অনুরোধ করে যে আপনি এপিএনগুলিতে প্রেরণ করেছেন সেই ডিভাইসে বিতরণ করা একটি বিজ্ঞপ্তির ফলাফল। যাইহোক, যখন আপনার HTTP / 2 অনুরোধ শিরোনামে apns- পতন-আইডি কী উপস্থিত থাকে, তখন APN গুলি অনুরোধগুলিকে সমাহার করে যার জন্য কীটির মান একই। উদাহরণস্বরূপ, একটি নিউজ সার্ভিস যা দু'বার একই শিরোনাম প্রেরণ করে উভয় অনুরোধের জন্য একই ধসে শনাক্তকারী মান ব্যবহার করতে পারে। এরপরে এপিএনগুলি ডিভাইসে ডেলিভারির জন্য দুটি অনুরোধকে একক বিজ্ঞপ্তিতে একত্রিত করবে। অ্যাপস-পতন-আইডি কী সম্পর্কে বিশদ জানতে।

সুরক্ষা আর্কিটেকচার

এপিএনস দুটি স্তরের আস্থা ব্যবহার করে শেষ থেকে শেষ, ক্রিপ্টোগ্রাফিক বৈধতা এবং প্রমাণীকরণ প্রয়োগ করে: সংযোগ বিশ্বাস এবং ডিভাইস টোকেন বিশ্বাস।

সংযোগ আস্থা সরবরাহকারী এবং এপিএন এবং এপিএন এবং ডিভাইসের মধ্যে কাজ করে।

ডিভাইস টোকেন বিশ্বাস প্রতিটি রিমোট নোটিফিকেশনের শেষ প্রান্তে কাজ করে। এটি নিশ্চিত করে যে বিজ্ঞপ্তিগুলি কেবলমাত্র সঠিক শুরু (সরবরাহকারী) এবং শেষ (ডিভাইস) পয়েন্টগুলির মধ্যে স্থান পেয়েছে।

একটি ডিভাইস টোকেন হল একটি অস্বচ্ছ এনএসডিটা উদাহরণ যা অ্যাপল দ্বারা নির্দিষ্ট ডিভাইসের একটি নির্দিষ্ট অ্যাপ্লিকেশনটিতে নির্ধারিত একটি অনন্য সনাক্তকারী রয়েছে। কেবলমাত্র এপিএনই কোনও ডিভাইস টোকেনের সামগ্রীগুলি ডিকোড করতে এবং পড়তে পারে। প্রতিটি অ্যাপ্লিকেশন উদাহরণটি এপিএনগুলির সাথে নিবন্ধভুক্ত হওয়ার সময় তার অনন্য ডিভাইস টোকনটি গ্রহণ করে এবং তারপরে অবশ্যই টোকনটিকে তার সরবরাহকারীর কাছে ফরোয়ার্ড করা উচিত, যেমন রিমোট নোটিফিকেশন সহায়তা কনফিগারেশনে বর্ণিত হয়েছে। সরবরাহকারীকে অবশ্যই প্রতিটি ধাক্কা বিজ্ঞপ্তির অনুরোধে ডিভাইস টোকেন অন্তর্ভুক্ত করতে হবে যা সম্পর্কিত ডিভাইসকে লক্ষ্য করে; বিজ্ঞপ্তিটি কেবলমাত্র অনন্য অ্যাপ্লিকেশন-ডিভাইস সংমিশ্রণে বিতরণ করা হয়েছে তা নিশ্চিত করতে ডিভাইস টোকেন ব্যবহার করে।

এপিএনগুলি বিভিন্ন কারণে একটি নতুন ডিভাইস টোকন জারি করতে পারে:

  • ব্যবহারকারী একটি নতুন ডিভাইসে আপনার অ্যাপ্লিকেশন ইনস্টল করে
  • ব্যবহারকারী ব্যাকআপ থেকে ডিভাইস পুনরুদ্ধার করে
  • ব্যবহারকারী অপারেটিং সিস্টেমটি পুনরায় ইনস্টল করে
  • অন্যান্য সিস্টেম-সংজ্ঞায়িত ইভেন্ট

ফলস্বরূপ, অ্যাপ্লিকেশনগুলিকে এপিএন-থেকে-ডিভাইস সংযোগ ট্রাস্ট এবং ডিভাইস টোকেন্সে বর্ণিত লঞ্চের সময় ডিভাইস টোকেনের জন্য অনুরোধ করতে হবে। কোড উদাহরণগুলির জন্য, রিমোট বিজ্ঞপ্তিগুলি গ্রহণ করতে নিবন্ধকরণ দেখুন।

এপিএনগুলির সাথে এইচটিটিপি / ২-ভিত্তিক টিএলএস সেশন স্থাপন করতে আপনাকে অবশ্যই নিশ্চিত করতে হবে যে আপনার প্রতিটি সরবরাহকারীর উপর একটি জিও ট্রাস্ট গ্লোবাল সিএ রুট শংসাপত্র ইনস্টল করা আছে। যদি কোনও সরবরাহকারী ম্যাকোস চালাচ্ছেন তবে এই মূল শংসাপত্রটি ডিফল্টরূপে কীচেইনে রয়েছে। অন্যান্য সিস্টেমে, এই শংসাপত্রটির স্পষ্ট ইনস্টলেশন প্রয়োজন হতে পারে। আপনি জিও ট্রাস্ট রুট শংসাপত্রগুলির ওয়েবসাইট থেকে এই শংসাপত্রটি ডাউনলোড করতে পারেন। শংসাপত্রের সরাসরি লিঙ্ক এখানে is

চিত্র ৩-৩টি বিশ্বাস স্থাপনের জন্য HTTP / 2-ভিত্তিক APNs সরবরাহকারী এপিআই ব্যবহার করে এবং বিজ্ঞপ্তি প্রেরণের জন্য JWT সরবরাহকারী প্রমাণীকরণ টোকেন ব্যবহার করে চিত্রিত করে illust

চিত্র 1-3- প্রতিষ্ঠা করছে এবং টোকেন-ভিত্তিক সরবরাহকারী সংযোগ বিশ্বাস ব্যবহার করে

চিত্র: .. / আর্ট / সার্ভিস_প্রোভিডার_সিটি.জেপিজি

চিত্র ২-৩-তে দেখানো হয়েছে, টোকেন-ভিত্তিক সরবরাহকারী বিশ্বাস নীচে কাজ করে:

আপনার সরবরাহকারী ট্রান্সপোর্ট লেয়ার সিকিউরিটি (টিএলএস) ব্যবহার করে এপিএনগুলির সাথে সুরক্ষিত সংযোগের জন্য বলেন, চিত্রটিতে "টিএলএস দীক্ষা" লেবেলযুক্ত তীর হিসাবে উপস্থাপিত হয়েছে।

এরপরে APNs আপনার সরবরাহকারীকে একটি APNs শংসাপত্র দেয়, চিত্রের পরবর্তী তীর দ্বারা উপস্থাপিত ("APNs শংসাপত্রের লেবেলযুক্ত"), যা আপনার প্রদানকারী তার পরে বৈধতা দেয়।

এই মুহুর্তে, সংযোগ আস্থা স্থাপন করা হয়েছে এবং আপনার সরবরাহকারী সার্ভারটি এপিএনগুলিতে টোকেন-ভিত্তিক রিমোট পুশ বিজ্ঞপ্তি অনুরোধগুলি প্রেরণ করতে সক্ষম করেছে। আপনার সরবরাহকারী প্রেরিত প্রতিটি বিজ্ঞপ্তির অনুরোধ অবশ্যই একটি JWT প্রমাণীকরণ টোকেন সহ অবশ্যই "নোটিফিকেশন পুশ" লেবেলযুক্ত তীর হিসাবে চিত্রটিতে উপস্থাপন করবে।

APN গুলি প্রতিটি ধাক্কায় জবাব দেয়, চিত্রটিতে প্রতিনিধিত্ব করে "HTTP / 2 প্রতিক্রিয়া" হিসাবে চিহ্নিত তীর হিসাবে চিহ্নিত করা হয়েছে।

আপনার সরবরাহকারী এই পদক্ষেপের জন্য যে প্রতিক্রিয়া পেতে পারেন সে সম্পর্কে সুনির্দিষ্টতার জন্য, এপিএন থেকে HTTP / 2 প্রতিক্রিয়া দেখুন।

চিত্র 1-4 একটি সরবরাহকারী এবং এপিএন এর মধ্যে বিশ্বাস স্থাপনের জন্য একটি অ্যাপল-জারি করা এসএসএল শংসাপত্রের ব্যবহারের চিত্র তুলে ধরেছে। চিত্র ৩-৩ এর বিপরীতে, এই চিত্রটি কোনও বিজ্ঞপ্তি নিজেই ধাক্কা দেয় না, তবে ট্রান্সপোর্ট লেয়ার সিকিউরিটি (টিএলএস) সংযোগ স্থাপনে থামে। শংসাপত্র ভিত্তিক বিশ্বাসের স্কিমে, পুশ বিজ্ঞপ্তি অনুরোধগুলি অনুমোদনপ্রাপ্ত নয় তবে তারা সাথে থাকা ডিভাইস টোকেন ব্যবহার করে বৈধ হয়ে গেছে।

চিত্র 1-4 শংসাপত্র ভিত্তিক সরবরাহকারী সংযোগ বিশ্বাস প্রতিষ্ঠা করছে

চিত্র: .. / আর্ট / সার্ভিস_প্রোভিডার_সিটি_সেসিফেট_2x.png

চিত্র 1-4 তে দেখানো হয়েছে, শংসাপত্র ভিত্তিক সরবরাহকারী-থেকে-এপিএন-এর বিশ্বাস নিম্নলিখিত হিসাবে কাজ করে:

আপনার সরবরাহকারী ট্রান্সপোর্ট লেয়ার সিকিউরিটি (টিএলএস) ব্যবহার করে এপিএনগুলির সাথে সুরক্ষিত সংযোগের জন্য বলেন, চিত্রটিতে "টিএলএস দীক্ষা" লেবেলযুক্ত তীর হিসাবে উপস্থাপিত হয়েছে।

এরপরে APNs আপনার সরবরাহকারীকে একটি APNs শংসাপত্র দেয়, চিত্রের পরবর্তী তীর দ্বারা উপস্থাপিত ("APNs শংসাপত্রের লেবেলযুক্ত"), যা আপনার প্রদানকারী তার পরে বৈধতা দেয়।

আপনার সরবরাহকারীকে অবশ্যই তার অ্যাপল-প্রভিশনড সরবরাহকারী শংসাপত্রটি প্রেরণ করতে হবে (যা আপনি আপনার অনলাইন বিকাশকারী অ্যাকাউন্ট থেকে পূর্বে পেয়েছেন, যেমন এক্সকোড সহায়তাতে "সর্বজনীন এপিএন ক্লায়েন্ট এসএসএল শংসাপত্র তৈরি করুন" এপিএনগুলিতে) সরবরাহকারীকে "সরবরাহকারী" হিসাবে চিহ্নিত করে ফিরে যেতে হবে সনদপত্র."

এরপরে এপিএনগুলি আপনার সরবরাহকারীর শংসাপত্রকে বৈধতা দেয়, এর মাধ্যমে নিশ্চিত হয়ে যায় যে সংযোগের অনুরোধটি বৈধ সরবরাহকারীর কাছ থেকে এসেছে এবং আপনার টিএলএস সংযোগ স্থাপন করে।

এই মুহুর্তে, সংযোগ বিশ্বাস প্রতিষ্ঠিত হয় এবং আপনার সরবরাহকারী সার্ভার এপিএনগুলিতে শংসাপত্র ভিত্তিক রিমোট পুশ বিজ্ঞপ্তি অনুরোধগুলি প্রেরণ করতে সক্ষম করে is

এপিএন-থেকে-ডিভাইস সংযোগ ট্রাস্ট এবং ডিভাইস টোকেন

এই বিভাগে বর্ণিত হিসাবে আপনার অ্যাপ্লিকেশন দ্বারা অংশগ্রহণ না করে এপিএন এবং প্রতিটি ডিভাইসের মধ্যে বিশ্বাস স্বয়ংক্রিয়ভাবে প্রতিষ্ঠিত হয়।

প্রতিটি ডিভাইসের একটি ক্রিপ্টোগ্রাফিক শংসাপত্র এবং একটি প্রাইভেট ক্রিপ্টোগ্রাফিক কী থাকে যা প্রাথমিক ডিভাইস অ্যাক্টিভেশন এ অপারেটিং সিস্টেম দ্বারা সরবরাহ করা হয় এবং ডিভাইসের কীচেইনে সঞ্চিত থাকে। অ্যাক্টিভেশন চলাকালীন, এপিএনগুলি চিত্র 6-5-এ দেখানো শংসাপত্র এবং কী এর উপর ভিত্তি করে ডিভাইসের সাথে সংযোগটিকে প্রমাণীকরণ এবং বৈধ করে।

চিত্র 1-5 একটি ডিভাইস এবং APN গুলি মধ্যে সংযোগ বিশ্বাস স্থাপন করে

চিত্র: .. / আর্ট / সার্ভিস_দেবা_সিটি.জেপিজি

চিত্র 1-5-তে দেখানো হয়েছে, এপিএন-থেকে-ডিভাইস বিশ্বাস নীচে কাজ করে:

  • চিত্রের শীর্ষে তীর মতো দেখানো হয়েছে, ডিভাইসটি এপিএনগুলির সাথে একটি টিএলএস সংযোগ শুরু করলে বিশ্বাসের আলোচনা শুরু হয়।
  • APN গুলি ডিভাইসে একটি APNs শংসাপত্র ফেরত দেয়।
  • অপারেটিং সিস্টেমটি এই শংসাপত্রটিকে বৈধতা দেয় এবং তারপরে, "ডিভাইস শংসাপত্র" তীর হিসাবে দেখানো হয়, ডিভাইস শংসাপত্রটি এপিএনগুলিতে প্রেরণ করে।
  • পরিশেষে, চিত্রের নীচের তীর দ্বারা নির্দেশিত হিসাবে, এপিএনগুলি বিশ্বাস স্থাপন করে ডিভাইস শংসাপত্রকে বৈধতা দেয়।
  • এপিএন এবং ডিভাইসের মধ্যে প্রতিষ্ঠিত একটি টিএলএস সংযোগের সাথে, ডিভাইসের অ্যাপ্লিকেশনগুলি দূরবর্তী বিজ্ঞপ্তির জন্য তাদের অ্যাপ্লিকেশন-নির্দিষ্ট ডিভাইস টোকেনগুলি পেতে APN- এ নিবন্ধন করতে পারে। বিশদ এবং কোড উদাহরণের জন্য, রিমোট নোটিফিকেশন সমর্থন কনফিগারেশনে রিমোট নোটিফিকেশন গ্রহণের জন্য নিবন্ধকরণ দেখুন।

ডিভাইস টোকেন পাওয়ার পরে, একটি অ্যাপ্লিকেশন অবশ্যই অ্যাপের সাথে সম্পর্কিত সরবরাহকারীর সাথে সংযোগ স্থাপন করবে এবং টোকেনটি এতে ফরোয়ার্ড করবে। এই পদক্ষেপটি প্রয়োজনীয় কারণ কোনও ডিভাইসকে লক্ষ্যবস্তু করে APNs এ কোনও নোটিফিকেশন অনুরোধ প্রেরণ করার পরে কোনও সরবরাহকারী অবশ্যই ডিভাইস টোকেন অন্তর্ভুক্ত করতে হবে। টোকেন ফরওয়ার্ড করার জন্য আপনি যে কোডটি লিখেছেন তা দূরবর্তী বিজ্ঞপ্তিগুলি গ্রহণ করার জন্য নিবন্ধকরণেও দেখানো হয়েছে।

কোনও ব্যবহারকারী প্রথমবারের জন্য কোনও ডিভাইস সক্রিয় করছে কিনা, বা এপিএনগুলি একটি নতুন ডিভাইস টোকেন জারি করেছে কিনা, প্রক্রিয়াটি একই রকম এবং চিত্র 6--6 এ দেখানো হয়েছে।

চিত্র 1-6 ডিভাইস টোকেন পরিচালনা করা

চিত্র: .. / আর্ট / টোকেন_জেনারেশন.জেপিজি

অ্যাপ্লিকেশন-নির্দিষ্ট ডিভাইস টোকেন প্রাপ্ত এবং পরিচালনা করা নীচের মত কাজ করে:

আপনার অ্যাপটি উপরের তীরের মতো প্রদর্শিত দূরবর্তী বিজ্ঞপ্তির জন্য APN- এর সাথে নিবন্ধভুক্ত। যদি অ্যাপ্লিকেশনটি ইতিমধ্যে নিবন্ধভুক্ত হয়েছে এবং অ্যাপ্লিকেশন-নির্দিষ্ট ডিভাইস টোকেনটি পরিবর্তিত হয়নি, সিস্টেমটি দ্রুত উপস্থিত টোকেনটিকে অ্যাপটিতে ফিরিয়ে দেয় এবং এই প্রক্রিয়াটি পদক্ষেপ 4 এ এড়িয়ে যায়।

যখন একটি নতুন ডিভাইস টোকেন প্রয়োজন হয়, এপিএনগুলি ডিভাইসের শংসাপত্রে থাকা তথ্য ব্যবহার করে একটি উত্পন্ন করে। এটি একটি টোকেন কী ব্যবহার করে টোকেনকে এনক্রিপ্ট করে এবং ডিভাইসে এটি ফিরিয়ে দেয়, যেমন মাঝখানে, ডানদিকের নির্দেশক তীর দেখানো হয়।

সিস্টেমটি আপনার অ্যাপ্লিকেশনে কল করে ডিভাইস টোকনটি আপনার অ্যাপ্লিকেশনে ফিরিয়ে দেয়: didRegisterForRemoteNotificationsWithDeviceToken: প্রতিনিধি পদ্ধতি।

টোকেনটি পাওয়ার পরে, আপনার অ্যাপ্লিকেশনটিকে (প্রতিনিধি পদ্ধতির মধ্যে) অবশ্যই এটি বাইনারি বা হেক্সাডেসিমাল ফর্ম্যাটে আপনার সরবরাহকারীর কাছে ফরোয়ার্ড করতে হবে। আপনার সরবরাহকারী এই টোকেন ছাড়া ডিভাইসে বিজ্ঞপ্তি পাঠাতে পারবেন না। বিশদগুলির জন্য, রিমোট নোটিফিকেশন সহায়তা কনফিগার করতে দূরবর্তী বিজ্ঞপ্তিগুলি পেতে নিবন্ধকরণ দেখুন।

গুরুত্বপূর্ণ

APNs ডিভাইস টোকেনগুলি পরিবর্তনশীল দৈর্ঘ্যের। তাদের আকার হার্ড-কোড করবেন না।

যখন আপনার সরবরাহকারী এপিএনগুলিতে পুশ বিজ্ঞপ্তি অনুরোধ প্রেরণ করে, তখন এটিতে একটি ডিভাইস টোকেন অন্তর্ভুক্ত থাকে যা একটি অনন্য অ্যাপ-ডিভাইস সংমিশ্রণ সনাক্ত করে identif এই পদক্ষেপটি চিত্র 6--7-এ সরবরাহকারী এবং এপিএনগুলির মধ্যে "টোকন, পেইলড" তীরটিতে দেখানো হয়েছে। অনুরোধটির বৈধতা এবং লক্ষ্য ডিভাইস নির্ধারণের জন্য এপিএনগুলি টোকেনটি ডিক্রিপ্ট করে। যদি এপিএনগুলি নির্ধারণ করে যে প্রেরক এবং প্রাপক বৈধ, তবে এটি চিহ্নিত ডিভাইসে বিজ্ঞপ্তি প্রেরণ করে।

চিত্র 1-7 সরবরাহকারী থেকে ডিভাইসে দূরবর্তী বিজ্ঞপ্তির পথ

চিত্র: .. / আর্ট / টোকেন_স্ট্রাস্ট.জেপিজি

ডিভাইসটি বিজ্ঞপ্তিটি পাওয়ার পরে (এবং চিত্র 1-7-এ দেখানো চূড়ান্ত পদক্ষেপের পরে), সিস্টেমটি আপনার অ্যাপ্লিকেশনটিতে দূরবর্তী বিজ্ঞপ্তিটি ফরোয়ার্ড করে।

রেফ: আপেল পুশ নোটিফিকেশন পরিষেবা

প্রযুক্তিগত প্রবাহটি বুঝতে এখন এখানে দেখুন: আইওএস অ্যাপ্লিকেশনটিতে অ্যাপল পুশ নোটিফিকেশন পরিষেবা কীভাবে প্রয়োগ করা যায়?


8
হাহাহা, আপনি আক্ষরিকভাবে পুরো অ্যাপল ডক্স এ SO তে প্রবেশ করিয়ে দিয়েছেন!
ম্যাট ম্যাক

@ ম্যাটম্যাক - হ্যাঁ, আমি এসও-র জন্য নবাগত ছিলাম, যখন আমি এই উত্তরটি পোস্ট করি এবং তখন আমি এপিএনএস-এ একটি লিঙ্ক পোস্ট করি তবে একটি লিঙ্ক এসও-তে উত্তর হিসাবে বিবেচিত হয় না, তাই আমি এটি করেছি .... :)
ক্রুনাল

4
এটি আসলে সত্য,
ম্যাট ম্যাক

22

আমি পুশ বিজ্ঞপ্তির কর্মপ্রবাহটি ব্যাখ্যা করতে একটি ইনফোগ্রাফিক তৈরি করেছি। আশা করি এটি সহায়ক।

এখানে চিত্র বর্ণনা লিখুন


14

পুশ বিজ্ঞপ্তিগুলির জন্য ডিভাইস সার্ভারে পোলিং রাখে না।

এটিকে সহজ রাখতে, একটি আইফোন ইন্টারনেটের সাথে সংযুক্ত রয়েছে তা বিবেচনা করুন। ইন্টারনেটের সাথে সংযোগ করার সময় আইফোন অ্যাপল পুশ নোটিফিকেশন সার্ভারের সাথে সংযোগ স্থাপন করে এই সংযোগটি ওপেন সংযোগ যা মানে সার্ভারে ডেটা উপস্থিত হওয়ার মুহূর্তে সার্ভার থেকে ডেটা আইফোনে নিক্ষেপ করা যেতে পারে।

অ্যাপল পুশ নোটিফিকেশনের জন্য এইচটিটিপি প্রোটোকল ব্যবহার করে না তবে আপনি যদি এইচটিটিপি প্রোটোকল বুঝতে পারেন তবে এটি প্রায় একই রকম পদ্ধতি ology

http://en.wikedia.org/wiki/Push_technology#HTTP_server_push


তারা HTTP না হলে কি ব্যবহার করবেন?
হাওিক্যাম্প

2

এই নিবন্ধে পুশ বিজ্ঞপ্তিগুলির একটি সত্যিই দুর্দান্ত এক্সপ্ল্যানেশন রয়েছে ।

আইওএস-এ, অ্যাপস ব্যাকগ্রাউন্ডে অনেক কিছু করতে পারে না। অ্যাপ্লিকেশনগুলিকে কেবল সীমিত ক্রিয়াকলাপ করার অনুমতি দেওয়া হয় যাতে ব্যাটারি জীবন সংরক্ষণ হয়।

তবে কী যদি আকর্ষণীয় কিছু ঘটে এবং আপনি ব্যবহারকারীদের বর্তমানে আপনার অ্যাপটি ব্যবহার না করেও তারা এই সম্পর্কে জানাতে চান?

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.