我有一個快速的問題。對於蘋果推送通知服務,我需要有我自己的服務器,它會將推送通知發送到蘋果服務器,對吧?服務器端iPhone APNS通信
我可以在一個普通的虛擬主機帳戶上用一個簡單的PHP腳本來做到這一點,還是我需要一個擁有完整管理員權限的專用服務器?
如果在PHP中這是可能的,任何人都可以指向我的一些樣本,可以幫助我開始呢?現在,我非常有信心在執行客戶端部分時不會遇到困難,但服務器端對我來說仍然有點神祕......
謝謝!
弗洛裏安
我有一個快速的問題。對於蘋果推送通知服務,我需要有我自己的服務器,它會將推送通知發送到蘋果服務器,對吧?服務器端iPhone APNS通信
我可以在一個普通的虛擬主機帳戶上用一個簡單的PHP腳本來做到這一點,還是我需要一個擁有完整管理員權限的專用服務器?
如果在PHP中這是可能的,任何人都可以指向我的一些樣本,可以幫助我開始呢?現在,我非常有信心在執行客戶端部分時不會遇到困難,但服務器端對我來說仍然有點神祕......
謝謝!
弗洛裏安
你大概就能做到這一點在有限的託管帳戶,只要你可以離開開放的服務器大部分時間的連接。一些示例代碼:
http://code.google.com/p/php-apns/
還要注意,一些公司正在與推託管啓動服務,幫助您明確(我會保持中立後,不提名字,我不知道哪些服務是還在運行)。
與APNS的主要問題是港口
這麼多的供應商犯規開放2195端口
,因此集中,最初然後再爲主機提供
這是我試過的代碼,但一個問題是無法得到設備通知
嗨,
我嘗試下面的代碼(PHP)
$apnsHost = 'gateway.sandbox.push.apple.com';
$apnsPort = 2195;
$apnsCert = 'apple_push_notification_production.pem';
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);
if($apns)
{
echo "Connection Established<br/>";
$deviceToken = '**********';//masked
$body = array();
$body['aps'] = array(’alert’ => "test message");
//$body['aps']['badge'] = 1;
$payload = json_encode($body);
$apnsMessage = chr(0) . pack("n",32) . pack('H*', str_replace(' ', '', $deviceToken)) . pack("n",strlen($payload)) . $payload;
print "sending message :" . $apnsMessage . "<br/>";
print "sending payload :" . $payload . "<br/>";
fwrite($apns, $apnsMessage);
}
else
{
echo "Connection Failed";
echo $errorString;
echo $error;
}
socket_close($apns);
fclose($apns);
答覆是連接建立 發送消息:d ^÷Îå0ZCd%1ÄuwOOYš'ÊÈ}ârðm¾Í,{ 「APS」:{ 「\ u2019alert \ u2019」: 「測試消息」}} 發送有效載荷:{ 「APS」:{ 「\ u2019alert \ u2019」: 「測試消息」}}
,但我沒能獲得通知
任何幫助嗎?