首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS不推送到多个设备ID

iOS不推送到多个设备ID
EN

Stack Overflow用户
提问于 2016-09-12 22:54:28
回答 1查看 78关注 0票数 0

我正在使用PHP获取一个device_ids数组,并使用以下代码向它们发送iOS推送-

问题-当device_ids (deviceTokens)数组为2-3 device_ids时,设备收到推送.但是,当deviceTokens数组长度为300 device_id时,偏差没有收到推送通知。有什么问题吗?我是PHP的新手

(这个问题已经问过几次了,但答案没有反映出我面临的问题)

代码语言:javascript
复制
$customers_ios = "SELECT * FROM `gcm_user` WHERE `gcmregios` <> '0' and `preference` = '1'";
                $c_ios = mysql_query($customers_ios);

                while($bd = mysql_fetch_array($c_ios)) {
                    $deviceTokens[]= $bd['gcmregios'];

                }

                $arrlength = count($deviceTokens);
                //echo $arrlength;

                // Put your private key's passphrase here:
                $passphrase = 'mypassphrase';//'PushNotification';

                //adhoc_id already setup above
                $message = $adhoc_desc;
                $title =  $adhoc_title;



                $ctx = stream_context_create();
                stream_context_set_option($ctx, 'ssl', 'local_cert', 'PushDistCertificates.pem');
                stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);

                //'ssl://gateway.sandbox.push.apple.com:2195'
                // Open a connection to the APNS server
                $fp = stream_socket_client(
                  'ssl://gateway.push.apple.com:2195', $err,
                  $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);

                if (!$fp)
                    continue;

                // Create the payload body
                $body['aps'] = 
                array(
                    'alert'=> $title,
                    'message' => 
                    array('ADHOC' => 
                        array('ADHOC_ID' => $adhoc_id,
                            'ADHOC_TITLE' => $title,
                            'ADHOC_DESCRIPTION' =>  $message,
                        )
                    ),
                    'sound'=>'default'
                );

                // Encode the payload as JSON
                $payload = json_encode($body);

                foreach($deviceTokens as $ios_token){
                    $msg = chr(0) . pack("n",32) . pack('H*', str_replace(' ', '', $ios_token)) . pack("n",strlen($payload)) . $payload;
                    $result = fwrite($fp, $msg); 
                }
                // Close the connection to the server
                fclose($fp);
EN

回答 1

Stack Overflow用户

发布于 2017-06-09 07:31:21

类似的问题,交叉检查数据库中的所有设备id,我们发现设备id为“模拟器”,它是xcode中虚拟设备的设备id。在开发期间,DEV团队可能已经在模拟器中进行了测试,并且APNS在更早的时候识别了这个id,它拒绝了所有的请求。可能只对我们有具体的问题,交叉核对会有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39459905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档