Я делаю 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
0
A
ответ
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
соответствует имени вашего столбца, если не заменить его на правильное значение.
Что такое $ push? – malinchhan
так $ push = $ apns_message! – malinchhan
Если $ apns_message содержит 'chr (0). chr (0). chr (32). pack ('H *', str_replace ('', '', $ device_token)). chr (0). chr (mb_strlen ($ полезная нагрузка)). $ полезная нагрузка; '(или, тем не менее, вы готовите свои сообщения об ошибках), тогда да! – PassKit