當我需要發送一個通知時,我的代碼工作正常,但每當我需要發送多個通知時,它只發送第一個通知。這裏是代碼:發送多個iPhone通知
<?php
$device_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$apnsHost = 'gateway.sandbox.push.apple.com';
$apnsPort = 2195;
$apnsCert = 'apns-dev.pem';
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 60, STREAM_CLIENT_CONNECT, $streamContext);
$payload['aps'] = array('alert' => 'some notification', 'badge' => 0, 'sound' => 'none');
$payload = json_encode($payload);
for($i=0; $i<5; $i++)
{
$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $device_token)) . chr(0) . chr(strlen($payload)) . $payload;
fwrite($apns, $apnsMessage);
}?>
我在做什麼錯了?
Thx提前, Mladjo
我已經注意到了。這是複製和粘貼錯誤。在我的代碼中,我只打開一次連接。這不是我的問題的解決方案 – Mladen 2009-10-29 09:16:16
您是否嘗試過使用此代碼構建消息: $ apns_message = chr(0).pack('n',32).pack('H *',$ device_token).pack ('n',strlen($ payload))。$ payload; 另外,你是否將所有這些推送通知發送到同一設備?如果是這樣,那麼只有一個將出現在設備上。 – 2009-10-29 09:55:11
我的消息是用該代碼構建的。我將它們全部發送到相同的iPod touch。有了這個循環,我得到了2而不是5。即使我嘗試使用不同的標記,它只會發送到第一個。 – Mladen 2009-10-29 10:33:57