प्रति Predefined Constants पर पीएचपी प्रलेखन के रूप में, STREAM_CLIENT_PERSISTENT का उपयोग कर APNS कनेक्शन साथ कनेक्शन पृष्ठ लोड के बीच सक्रिय रखना चाहिए। यह एपीएनएस कनेक्शन के लिए एक आवश्यकता है, क्योंकि यह होगा आपको थ्रॉटल करता है क्योंकि यह एक पेलोड भेजने के बाद सेवा हमले का संभावित अस्वीकार करने के बाद किसी भी डिस्कनेक्शन को मानता है।
क्या आपको पूर्ववर्ती कनेक्शन के बाहर क्लाइंट के साथ कोई समस्या होनी चाहिए, तो आप निम्न को आजमा सकते हैं, क्योंकि यह अब तक PHP के भीतर एक एपीएनएस कनेक्शन को संभालने का सबसे अच्छा तरीका है। यह ग्राहक को PHPXMLRPC से उपयोग करता है, इसलिए आपको वह पैकेज डाउनलोड करना होगा।
<?php
include '../vendors/xmlrpc.inc';
$hostName = 'localhost'; # Your services endpoint here.
$rpcPath = '';
$port = 7077;
if($_GET['action'] == 'provisioning')
{
$echoString = new xmlrpcmsg(
'provision',
array(
php_xmlrpc_encode('appid'),
php_xmlrpc_encode('/path/to/certificate.pem'),
php_xmlrpc_encode('sandbox'),
php_xmlrpc_encode(100)
)
);
$continue = TRUE;
}
if($_GET['action'] == 'notify')
{
$echoString = new xmlrpcmsg(
'notify',
array(
php_xmlrpc_encode('paparazzme'),
php_xmlrpc_encode(array('6bcda...', '7c008...')),
php_xmlrpc_encode(array(array("aps" => array("alert" => "Hello User 1")), array("aps" => array("alert" => "Hello User 2"))))
)
);
$continue = TRUE;
}
if($continue == true)
{
# Create a client handle and send request
$client = new xmlrpc_client($rpcPath, $hostName, $port);
# A little verbose debug
$client->setDebug(2);
# The response
$response = &$client->send($echoString);
# Check if response is good
if (! $response->faultCode())
print "\nReturned string is: " . php_xmlrpc_decode($response->value()) . "\n";
else
print "An error occurred: \nCode: " . $response->faultCode() . " Reason: '" . htmlspecialchars($response->faultString()) . "'\n";
}
?>
स्रोत: How to get started with APNS for iPhone or iTouch
मैं समय लेने के लिए, करते रहे कि, मैं इस कोड के किसी भी परीक्षण नहीं किया गया है चाहते हैं, मैं परीक्षण करने के लिए अभी एक iPhone आवेदन की जरूरत नहीं है इसके साथ, इसलिए मैं आपको बता सकता हूं कि यह वास्तव में काम करता है या नहीं।
यदि यह आपके लिए व्यवहार्य है, तो मैं आपको सलाह दूंगा कि आप इसके बजाय उबान एयरशिप का उपयोग करें, क्योंकि वे अपने प्रत्येक ग्राहक को 250,000 मुफ्त पुश प्रदान करते हैं, और जो आपके लिए एपीएन सर्वर से कनेक्शन को संभालते हैं, वहां से आप अपने ग्राहकों से बात करने के लिए अपने APIs का उपयोग करते हैं।