Server Side iPhone APNS İletişim

2 Cevap php

Ben hızlı bir soru var. Elma push bildirim hizmeti için, ben sağ, elma sunucularına push bildirimleri göndermek olacak olan, benim kendi sunucusu olması gerekir?

Ben normal bir webhosting hesabına basit bir PHP komut dosyası ile bunu yapabilirsiniz, ya da bunun için tam şişmiş yönetici erişimi olan özel bir sunucuya ihtiyaç var?

Bu PHP mümkün ise, kimse beni bu başlamanıza yardımcı olabilecek bazı örnekler beni işaret edebilir? Sağ şimdi, ben sorun istemci tarafı kısmen uygulanması gerekmez oldukça eminim, ancak sunucu tarafında biraz benim için bir gizem hala ...

Teşekkür ederiz!

Florian

2 Cevap

Muhtemelen sürece çoğu zaman sunucuya bağlantıyı açık bırakabilirsiniz gibi, sınırlı bir hosting hesabı üzerinde bunu yapmak mümkün olacak. Bazı örnek kod:

http://code.google.com/p/php-apns/

Bazı şirketler itme (Ben henüz çalışmakta olan hizmetleri emin değilim, söz isimleri nötr yazı tutmak ve yok edeceğiz) hosting ile özellikle size yardımcı hizmetler başladığını unutmayın.

APNS ile ana sorun portlar

çok sağlayıcıları 2195 portunu açmıyor

böylece konsantre başlangıçta sonra host sağlayıcı gitmek

İşte ben denedim ne kodu, ama bir sorun cihaz bildirim almak mümkün değil

Merhaba,

i Aşağıdaki kodu (PHP) çalıştı

$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);

reply is Connection Established sending message :�� d^÷Îå0ZCd%1ÄuwOOYš'ÊÈ}ârðm¾Í�,{"aps":{"\u2019alert\u2019":"test message"}} sending payload :{"aps":{"\u2019alert\u2019":"test message"}}

Ancak bildirim almak mümkün değilim

herhangi bir yardım?