APNS: यह क्या है, Apple Push Notification Service की कार्यप्रणाली और संरचना

लेखक: IT Sectr प्रकाशित: 2026-03-20 पढ़ने का समय: 8 मिनट

APNS (Apple Push Notification Service) Apple का बुनियादी ढाँचा सेवा है जो इकोसिस्टम डिवाइसों — iPhone, iPad, Mac, Apple Watch और Apple TV — पर push नोटिफिकेशन पहुँचाने के लिए है। यह सेवा डिवाइस और Apple सर्वर के बीच स्थायी TLS कनेक्शन के माध्यम से विश्वसनीय संदेश वितरण सुनिश्चित करती है। Apple Developer Documentation के अनुसार, APNS एप्लिकेशन सर्वर के साथ द्विदिश संचार के लिए HTTP/2 प्रोटोकॉल का उपयोग करता है।

मुख्य बिंदु

  • APNS — सभी Apple डिवाइसों पर push नोटिफिकेशन पहुँचाने के लिए Apple की केंद्रीकृत सेवा
  • प्रोटोकॉल — TLS के साथ HTTP/2, एप्लिकेशन सर्वर और Apple सर्वर के बीच द्विदिश संचार
  • प्रमाणीकरण — दो तरीके: Token-आधारित (p8 कुंजी) और Certificate-आधारित (.p12 प्रमाणपत्र)
  • डिवाइस — प्रत्येक को भेजते समय पहचान के लिए एक अद्वितीय push टोकन मिलता है
  • प्राथमिकता — संदेश प्रकार के अनुसार तत्काल वितरण (10) या ऊर्जा-कुशल (5)

APNS क्या है?

Apple Push Notification Service (APNS) Apple की मालिकाना सेवा है जो एप्लिकेशन सर्वर से उपयोगकर्ता डिवाइसों तक push नोटिफिकेशन रूट करती है। FCM के विपरीत, APNS Android या अन्य प्लेटफ़ॉर्म का समर्थन नहीं करता — यह पूरी तरह से Apple इकोसिस्टम से जुड़ा है।

सेवा एक स्थायी TLS कनेक्शन के माध्यम से काम करती है जो प्रत्येक Apple डिवाइस स्टार्टअप पर APNS सर्वर के साथ स्थापित करता है। यह कनेक्शन बैकग्राउंड में बनाए रखा जाता है और न्यूनतम विलंबता के साथ नोटिफिकेशन देने के लिए उपयोग किया जाता है।

APNS सभी वितरण बुनियादी ढाँचे को संभालता है: एन्क्रिप्शन, प्रमाणीकरण, प्राथमिकता निर्धारण, और डिवाइस के अनुपलब्ध होने पर पुनर्प्रेषण। डेवलपर को केवल सही ढंग से स्वरूपित पेलोड और एक वैध push टोकन प्रदान करने की आवश्यकता है।

APNS का विकास

मूल रूप से, APNS पोर्ट 2195–2196 पर बाइनरी प्रोटोकॉल के माध्यम से काम करता था। 2015 से, Apple ने सेवा को आधुनिक HTTP/2 प्रोटोकॉल में स्थानांतरित कर दिया है, जो मल्टीप्लेक्सिंग, हेडर कम्प्रेशन और सर्वर push नोटिफिकेशन का समर्थन करता है। HTTP/2 जून 2020 से अनिवार्य हो गया।

Apple Push Notification Service कैसे काम करता है?

APNS के माध्यम से push नोटिफिकेशन वितरण प्रक्रिया में पाँच चरण होते हैं: डिवाइस पंजीकरण, push टोकन प्राप्त करना, सर्वर द्वारा अनुरोध भेजना, APNS रूटिंग, और डिवाइस पर वितरण।

  • पंजीकरण — लॉन्च पर, ऐप registerForRemoteNotifications कॉल करता है, सिस्टम APNS से संपर्क करता है
  • टोकन — APNS डिवाइस को push टोकन लौटाता है — डिवाइस पर ऐप की पहचान करने वाली एक अद्वितीय स्ट्रिंग
  • भेजना — एप्लिकेशन सर्वर टोकन और पेलोड के साथ https://api.push.apple.com पर POST अनुरोध भेजता है
  • रूटिंग — APNS टोकन द्वारा डिवाइस ढूँढता है और TLS कनेक्शन के माध्यम से संदेश पहुँचाता है
  • प्रसंस्करण — iOS/macOS स्थिति के अनुसार नोटिफिकेशन प्रदर्शित करता है या ऐप को भेजता है

यदि डिवाइस अनुपलब्ध है (बंद है या कोई नेटवर्क नहीं), APNS प्रत्येक ऐप के लिए नवीनतम संदेश संग्रहीत करता है और कनेक्शन बहाल होने पर उसे वितरित करता है। अधिकतम भंडारण अवधि 4 सप्ताह है, जिसके बाद संदेश हटा दिया जाता है।

APNS में प्रमाणीकरण: टोकन और प्रमाणपत्र

Apple push नोटिफिकेशन भेजते समय एप्लिकेशन सर्वर को प्रमाणित करने के दो तरीके सपोर्ट करता है। प्रत्येक तरीके की वैधता अवधि, प्रबंधन और उपयोग में आसानी के मामले में अपनी विशेषताएँ हैं।

पैरामीटरToken-आधारित (p8)Certificate-आधारित (.p12)
वैधताअनिश्चितकालीन (कुंजी समाप्त नहीं होती)प्रमाणपत्र वैधता तक सीमित (आमतौर पर 1 वर्ष)
रोटेशनआवश्यक नहीं जब तक कुंजी से समझौता न होअनिवार्य वार्षिक प्रतिस्थापन
मल्टी-ऐपखाते के सभी ऐप के लिए एक कुंजीप्रत्येक ऐप के लिए अलग प्रमाणपत्र
पर्यावरणSandbox और Production के लिए एक कुंजीSandbox और Production के लिए अलग प्रमाणपत्र

Token-आधारित प्रमाणीकरण 2019 से Apple द्वारा अनुशंसित तरीका है। आप Apple Developer Console में एक p8 कुंजी बनाते हैं, इसे अपने सर्वर पर अपलोड करते हैं, और इसके साथ प्रत्येक APNS अनुरोध पर हस्ताक्षर करते हैं। कुंजी कभी समाप्त नहीं होती और आपके खाते के सभी ऐप के लिए काम करती है।

कौन सा प्रमाणीकरण तरीका चुनें

नई परियोजनाओं के लिए, Token-आधारित प्रमाणीकरण स्पष्ट रूप से बेहतर है: पूरे खाते के लिए एक p8 कुंजी, अनिश्चितकालीन, पर्यावरण से बंधन के बिना। Certificate-आधारित (.p12) अभी भी पुरानी परियोजनाओं में उपयोग किया जाता है लेकिन इसमें वार्षिक प्रतिस्थापन और Sandbox और Production के लिए अलग प्रमाणपत्र की आवश्यकता होती है। CI/CD की योजना बनाते समय प्रमाणपत्र समाप्ति पर विचार करें।

APNS push नोटिफिकेशन के प्रकार

APNS तीन प्रकार के push नोटिफिकेशन सपोर्ट करता है, जो डिवाइस पर उनके व्यवहार और अनुरोध विशेषता आवश्यकताओं में भिन्न होते हैं। प्रकार का चुनाव UX परिदृश्य और संदेश की तात्कालिकता पर निर्भर करता है।

  • Alert — शीर्षक, पाठ और वैकल्पिक क्रिया बटन के साथ मानक नोटिफिकेशन
  • Background — उपयोगकर्ता को दिखाए बिना मूक डेटा वितरण (साइलेंट push), application:didReceiveRemoteNotification में संभाला जाता है
  • VOIP — VoIP ऐप (PushKit) के लिए विशेष प्रकार, ऐप बंद होने पर भी तुरंत वितरित

Background नोटिफिकेशन के लिए, आपको content-available: 1 कुंजी निर्दिष्ट करनी होगी और प्राथमिकता 5 (ऊर्जा-कुशल वितरण) सेट करनी होगी। यदि ऐप समय पर उन्हें प्रोसेस नहीं करता है तो सिस्टम बैकग्राउंड नोटिफिकेशन की संख्या को सीमित कर सकता है।

वितरण प्राथमिकता कॉन्फ़िगरेशन

APNS दो प्राथमिकता मान सपोर्ट करता है: 10 (तत्काल वितरण) और 5 (ऊर्जा-कुशल)। Alert नोटिफिकेशन के लिए 10 का उपयोग करें — उपयोगकर्ता को उन्हें तुरंत प्राप्त करना चाहिए। बैकग्राउंड नोटिफिकेशन के लिए 5 का उपयोग करें — सिस्टम बैटरी बचाने के लिए वितरण में देरी कर सकता है। बैकग्राउंड के लिए गलत प्राथमिकता APNS अस्वीकृति का कारण बन सकती है।

APNS पेलोड प्रारूप

APNS सामान्य नोटिफिकेशन के लिए अधिकतम 4 KB और VOIP के लिए 5 KB आकार के साथ JSON प्रारूप में पेलोड स्वीकार करता है। पेलोड में प्रदर्शन सेटिंग्स के साथ अनिवार्य aps शब्दकोश और वैकल्पिक कस्टम फ़ील्ड होते हैं।

json
{
    "aps": {
        "alert": {
            "title": "नया संदेश",
            "body": "आपके 3 अपठित चैट हैं"
        },
        "badge": 3,
        "sound": "default",
        "category": "message_category",
        "thread-id": "chat_room_42"
    },
    "customData": {
        "chatId": "42"
    }
}

thread-id कुंजी iOS सूचना केंद्र में नोटिफिकेशन को समूहित करती है। category कुंजी क्रिया बटन प्रदर्शित करने के लिए नोटिफिकेशन को UNNotificationCategory से जोड़ती है। इन कुंजियों के बिना, सभी नोटिफिकेशन अलग-अलग दिखाई देते हैं।

APNS पेलोड में कस्टम फ़ील्ड

अनिवार्य aps शब्दकोश के अलावा, APNS पेलोड में शीर्ष स्तर पर कोई भी कस्टम फ़ील्ड हो सकते हैं। ये फ़ील्ड नोटिफिकेशन प्रोसेस करते समय userInfo शब्दकोश के माध्यम से ऐप के लिए सुलभ हैं। कस्टम डेटा इकाई पहचानकर्ता, स्क्रीन या लिंक पास करने के लिए सुविधाजनक है। अधिकतम पेलोड आकार 4 KB है, इसलिए push के माध्यम से बड़ी मात्रा में डेटा स्थानांतरित करने से बचें; नोटिफिकेशन खोलने के बाद API के माध्यम से लोड करें।

HTTP/2 API के माध्यम से भेजने का उदाहरण

सर्वर से push नोटिफिकेशन भेजने के लिए, आपको सही प्रमाणीकरण हेडर के साथ APNS एंडपॉइंट पर POST अनुरोध निष्पादित करना होगा। नीचे Token-आधारित प्रमाणीकरण का उपयोग करते हुए Node.js में एक उदाहरण दिया गया है।

js
const http2 = require("http2")
const fs = require("fs")
const jwt = require("jsonwebtoken")

const token = jwt.sign(
    { iss: "TEAM_ID", iat: Math.floor(Date.now() / 1000) },
    fs.readFileSync("AuthKey.p8"),
    { algorithm: "ES256", keyid: "KEY_ID" }
)

const payload = JSON.stringify({
    aps: { alert: { title: "नमस्ते!", body: "परीक्षण push" } }
})

const client = http2.connect(
    "https://api.push.apple.com"
)

const req = client.request({
    ":method": "POST",
    ":path": "/3/device/DEVICE_PUSH_TOKEN",
    "authorization": "bearer " + token,
    "apns-push-type": "alert",
    "apns-topic": "com.example.app",
    "apns-priority": "10"
})
req.end(payload)

req.on("response", (headers) => {
    if (headers[":status"] === 200) {
        console.log("Push सफलतापूर्वक भेजा गया")
    }
})

भेजने के बाद, APNS सफल वितरण पर HTTP स्थिति 200 या प्रतिक्रिया निकाय में विवरण के साथ त्रुटि कोड लौटाता है। token-unregistered (410) त्रुटियों को संभालना महत्वपूर्ण है — ऐसे टोकन को सर्वर से हटा दिया जाना चाहिए, क्योंकि ऐप डिवाइस से हटा दिया गया है।

APNS त्रुटियाँ और उनका प्रबंधन

APNS प्रत्येक भेजने के अनुरोध के लिए HTTP स्थिति कोड लौटाता है। सफल वितरण स्थिति 200 लौटाता है। त्रुटियों के लिए अलग-अलग प्रबंधन रणनीतियों की आवश्यकता होती है। BadDeviceToken (400) या Unregistered (410) — डिवाइस टोकन पुराना हो गया है और इसे सर्वर से हटा दिया जाना चाहिए। PayloadTooLarge (413) — 4 KB की सीमा पार हो गई है, पेलोड कम करें।

TooManyRequests (429) — अनुरोध सीमा पार हो गई। APNS प्रति सेकंड भेजने की संख्या पर कोटा निर्धारित करता है। 429 प्राप्त करने पर, एक्सपोनेंशियल बैकऑफ़ लागू करें और पुनः प्रयास करें। प्रति HTTP/2 कनेक्शन प्रति सेकंड 100 अनुरोधों से अधिक न करने की अनुशंसा की जाती है।

APNS-पक्ष त्रुटियाँ — 500 और 503 (आंतरिक सर्वर त्रुटि / सेवा अनुपलब्ध)। ये Apple के बुनियादी ढाँचे की अस्थायी विफलताएँ हैं। ऐसे मामलों में, 1-5 सेकंड की देरी के साथ पुनः प्रयास करें, 3 से अधिक प्रयास न करें। पूरी तरह से काम करने वाले सर्वर के साथ लगातार 5xx त्रुटियाँ दुर्लभ हैं और आमतौर पर TLS कनेक्शन समस्याओं से संबंधित होती हैं।

Production वातावरण के लिए, टोकन, त्रुटि कोड और समय के साथ सभी APNS त्रुटियों की लॉगिंग लागू करना सुनिश्चित करें। इससे प्रमाणपत्र, कोटा या विशिष्ट डिवाइस टोकन के साथ समस्याओं की तुरंत पहचान करने में मदद मिलेगी। यदि Certificate-आधारित प्रमाणीकरण का उपयोग कर रहे हैं तो नियमित रूप से प्रमाणपत्र समाप्ति तिथियों की जाँच करें।

अक्सर पूछे जाने वाले प्रश्न

APNS किन पोर्ट का उपयोग करता है?

APNS HTTP/2 API के लिए TCP 443 (HTTPS) के माध्यम से काम करता है। पहले, बाइनरी प्रोटोकॉल के लिए पोर्ट 2195 और 2196 का उपयोग किया जाता था। जून 2020 से, Apple को पोर्ट 443 पर विशेष रूप से HTTP/2 के उपयोग की आवश्यकता है। सुनिश्चित करें कि आपके सर्वर की api.push.apple.com तक पहुँच है।

APNS में Sandbox और Production वातावरण क्या हैं?

Sandbox push नोटिफिकेशन डिबगिंग के लिए APNS परीक्षण वातावरण है। Production वास्तविक उपयोगकर्ताओं के लिए लाइव वातावरण है। Token-आधारित प्रमाणीकरण के साथ, एक कुंजी दोनों वातावरणों के लिए काम करती है — एंडपॉइंट अलग होता है: api.sandbox.push.apple.com या api.push.apple.com।

डिवाइस का push टोकन कितनी बार बदलता है?

Push टोकन बदल सकता है जब: ऐप बैकअप से पुनर्स्थापित किया जाता है, ऐप पुनः इंस्टॉल किया जाता है, OS अपडेट किया जाता है, नेटवर्क सेटिंग्स रीसेट की जाती हैं। टोकन नहीं बदलता App Store के माध्यम से नियमित ऐप अपडेट के दौरान। सर्वर को BadDeviceToken (400) त्रुटि को टोकन हटाने के संकेत के रूप में संभालना चाहिए।

APNS में अधिकतम पेलोड आकार क्या है?

सामान्य alert/background नोटिफिकेशन के लिए 4 KB (4096 बाइट्स)। PushKit के माध्यम से VOIP नोटिफिकेशन के लिए — 5 KB (5120 बाइट्स)। आकार से अधिक होने पर PayloadTooLarge (413) त्रुटि वापस आती है। पेलोड को न्यूनतम रखने और अतिरिक्त डेटा सर्वर के माध्यम से लोड करने की अनुशंसा की जाती है।

क्या डिवाइस पर इंटरनेट के बिना push भेजा जा सकता है?

APNS इंटरनेट कनेक्शन के बिना डिवाइस पर नोटिफिकेशन नहीं पहुँचा सकता। यदि डिवाइस ऑफ़लाइन है, APNS 28 दिनों तक नवीनतम संदेश (प्रति ऐप प्रति डिवाइस) संग्रहीत करता है। कनेक्शन बहाल होने पर, संदेश तुरंत वितरित किया जाता है। पुराने संदेश संरक्षित नहीं होते।

सारांश

  • APNS — iOS, macOS, watchOS और tvOS पर push पहुँचाने के लिए Apple की बुनियादी ढाँचा सेवा
  • Push टोकन — registerForRemoteNotifications के माध्यम से प्राप्त अद्वितीय डिवाइस पहचानकर्ता
  • HTTP/2 — मल्टीप्लेक्सिंग के साथ आधुनिक APNS प्रोटोकॉल, 2020 से अनिवार्य
  • प्रमाणीकरण — Token-आधारित (p8) वैधता और लचीलेपन के लिए Certificate-आधारित (.p12) से बेहतर
  • Alert, Background, VOIP — विभिन्न वितरण नियमों के साथ तीन प्रकार के push नोटिफिकेशन
  • पेलोड — अनिवार्य aps शब्दकोश और वैकल्पिक कस्टम फ़ील्ड के साथ 4 KB तक JSON
  • भंडारण — APNS ऑफ़लाइन डिवाइसों के लिए 28 दिनों तक एक नवीनतम संदेश संग्रहीत करता है

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें