Адправіць Push Notification для многіх лексем прылад

У мяне ёсць гэты скрыпт:

$q = mysql_query("SELECT `token` FROM `tokens`");

$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'apns.pem');
$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);


while($token = mysql_fetch_array($q))
{
    $deviceToken = $token[0];
    echo $deviceToken.": ";
    $payload['aps'] = array('alert' => $message, 'sound' => 'Completed.wav');
    $payload = json_encode($payload);

    if (!$fp)
    {
        echo "Failed to connect {$err} {$errstrn}
"; } else { echo "Connection OK
"; } $msg = chr(0) . pack("n", 32) . pack('H*', $deviceToken) . pack("n", strlen($payload)) . $payload; if (fwrite($fp, $msg, strlen($msg)) === FALSE) { echo "can't write to socket!
"; } } fclose($fp);

вынік для ўсіх лексемы - Падлучэнне OK! Але Push апавяшчэнне прымаецца толькі ў адным прыладзе! Я спрабаваў пасылаць розныя паведамленні, але вынік не змяніўся :(

7
Проста (патэнцыйна-дурному) ідэя - ці падтрымлівае шлюз APN некалькі ПШ у адным злучэнні? Можа быць, вы павінны паспрабаваць перамясціць адкрыцця/закрыцця патоку ўнутры цыклу.
дададзена аўтар mkilmanas, крыніца
У маім выпадку адкрыцця і закрыцця злучэння ўнутры цыклу працаваў.
дададзена аўтар Sergio Morstabilini, крыніца
Таксама працуе для мяне, каб уключыць <�б> stream_socket_client і <�б> fclose ўнутры цыклу
дададзена аўтар garanda, крыніца
хто вырашыў гэтую праблему? калі ласка, дапамажыце мне, я м, якія маюць такую ​​ж праблему, калі ў мяне ёсць толькі адно прыладу ў БД я магу адправіць апавяшчэнне, але калі больш за адзін я не магу адправіць
дададзена аўтар Ravi, крыніца
нічога сабе !!! ідэі! ??
дададзена аўтар Alexander Zakatnov, крыніца
Няма, яго не працуе. але я знайшоў клас у Google Code, у гэтым класе рэалізаваць метад гэтага унікальны ідэнтыфікатара для паведамленняў, але пра ўнікальныя ідэнтыфікатарах ў яблычнай дакументацыі нічога пра гэта ід ...
дададзена аўтар Alexander Zakatnov, крыніца

1 адказы

паспрабуйце мой код. Я праверыць яго з 4-ма прыладамі.

На жаль аб каментарах, якія на іспанскай мове.

    <?php
include("../conectar.php");

if (isset($_GET['msj']) and isset($_GET['cupon']) and $_GET['msj'] != '' and $_GET['cupon'] != '') {

    $msj = $_GET['msj'];
    $cupon = $_GET['cupon'];

    echo '

';
}else{
    echo 'error #2';
}
?>

У маіх ACTIVE_USERS БД у мяне ёсць усе маркеры. Я спадзяюся, што гэта дапаможа

3
дададзена
Гэты код не адрозніваецца ад такога ў пытанні (адносна падлучэння і fwrites)
дададзена аўтар jptsetung, крыніца
трохі позна ... але гэта працуе для мяне
дададзена аўтар spankmaster79, крыніца