2013-05-02 2 views
0

Я делаю pushnotification для прохода. Как отправить оба URL-адреса только с одной строкой? Я использую этот код: $ConnectAPNS = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $streamContext);
$ConnectAPNS1 = stream_socket_client('ssl://gateway.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $streamContext); Как отправить 1 раз на другой адрес APNS

ответ

1

Все Passbook APNs запросы должны использовать производственные серверы, так что вы можете полностью удалить «SSL: //gateway.sandbox.push.apple.com: 2195` линии. Чтобы отправлять запросы для нескольких устройств, просто напишите в поток, пока он открыт.

// Code edited to match info provided in the comments below. 
$to_push = array(); 
$payload = json_encode(array('aps' => '')); 

while($device = mysql_fetch_array($query2,MYSQL_ASSOC)){ 
    $to_push[] = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $device['pushToken;])) . chr(0) . chr(mb_strlen($payload)) . $payload; 
} 

$ConnectAPNS = stream_socket_client('ssl://gateway.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $streamContext); 

foreach ($to_push as $push) 
    fwrite($ConnectAPNS, $push); 

fclose($ConnectAPNS); 

В приведенном выше коде замените $ device_query объектом, содержащим ваши устройства, извлеченные из вашей базы данных. Также убедитесь, что pushToken соответствует имени вашего столбца, если не заменить его на правильное значение.

+0

Что такое $ push? – malinchhan

+0

так $ push = $ apns_message! – malinchhan

+0

Если $ apns_message содержит 'chr (0). chr (0). chr (32). pack ('H *', str_replace ('', '', $ device_token)). chr (0). chr (mb_strlen ($ полезная нагрузка)). $ полезная нагрузка; '(или, тем не менее, вы готовите свои сообщения об ошибках), тогда да! – PassKit