2 u014638482 u014638482 于 2016.04.05 11:42 提问

php做ios推送的服务器,后台运行的时候会推送两条信息?有代码 5C
php

为什么php做ios推送的服务器的时候,后台运行的时候会推送两条信息?但是手机关掉屏幕推送的时候就正常了~ 就只有后台运行的时候是两条?? 怎么改呢?
下面是代码

 /**
手机推送信息类
@author:wtt
*/
class Push{
    private $deviceToken;
    private $message;
    function __construct($deviceToken,$message){ 
        $this->deviceToken = $deviceToken; 
        $this->message = $message; 

    }
    public function push(){
        //ck.pem通关密码  
        $pass = '123456';     
        //消息内容   
        //badge我也不知是什么  
        $badge = 1;  
        //sound我也不知是什么(或许是推送消息到手机时的提示音)  
        $sound = 'Duck.wav';  
        //建设的通知有效载荷(即通知包含的一些信息)  
        $body = array();  
        $body['aps'] = array('alert' => $this->message);  
        if ($badge)  
          $body['aps']['badge'] = $badge;  
        if ($sound)  
          $body['aps']['sound'] = $sound;  
        //把数组数据转换为json数据  
        $payload = json_encode($body);  
        //echo strlen($payload),"\r\n";   
        //下边的写法就是死写法了,一般不需要修改,  
        //唯一要修改的就是:ssl://gateway.sandbox.push.apple.com:2195这个是沙盒测试地址,ssl://gateway.push.apple.com:2195正式发布地址  
        $ctx = stream_context_create();  
        stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');    
        stream_context_set_option($ctx, 'ssl', 'passphrase', $pass);  
        $fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);  
        if (!$fp) {  
            print "Failed to connect {$err} {$errstr}\n";  
            return;  
        }  
        else {  
          // print "Connection OK\n<br/>";  
        }  
        // send message  
        $msg = chr(0) . pack("n",32) . pack('H*', str_replace(' ', '', $this->deviceToken)) . pack("n",strlen($payload)) . $payload;  
        //print "Sending message :" . $payload . "\n";    
        fwrite($fp, $msg);  
        fclose($fp);
    }
} 
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
[绍棠] ios9的设备为什么会收到了两条重复的推送
ios9以前的系统里面:一个设备的token是唯一的。除了升级系统等少量情况,基本不变。 而且在token变了以后,老的token,就被认为是无效了。 苹果不会对这部分无效的token推送。         ios9的系统:一个app每一次重新安装多会产生新的token。 而且老的token不会无效,还可以正常推送。  这个问题,在ios9刚发布的时候,已经就向苹果反馈过这个问题,也得到
iOS推送&PHP后台
转载自http://www.iashes.com/2015-11-942.html iOS远程推送,PHP最后台服务器进行推送。 推送机制: 1,PHP后台把要发送的消息、目的iPhone的标识打包,发给APNS(apple 推送服务器)。 2,APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发到iPhone。 3,i
ios推送php服务器端
用php实现ios推送效果的服务器端,简单快捷的实现推送
ios推送信息 php语言版
里面详细介绍了ios推送信息的流程和操作。也附有php代码
IOS推送之PHP代码
转载请标明出处 欢迎交流 zltqzj@163.com 我是一个单线程妞~ 在写推送的时候,PHP老是有问题,网上的代码几乎都是给一台设备推送,我推送多台的时候有的设备接收不到,后来琢磨了一周,总算有点结果。 因为每次请教大牛的时候,很多大牛都会说,我只负责IOS客户端,不会PHP。汗死。 PHP代码,里面查询数据库中device tok
一步一步教你做ios推送 pem证书制作 php推送
一步一步教你做ios推送 分类: ios2013-03-03 21:48 3385人阅读 评论(8) 收藏 举报 ios推送客户端服务器  最近在研究ios的推送问题,遇到了一些问题,最终整理了一下。放在这里和大家分享 APNS的推送机制 首先我们看一下苹果官方给出的对ios推送机制的解释。如下图   Provider就是我们自己程
自己搭建iOS 推送服务器
首页论坛博客学院招聘 Hi~   [ ]  [  注册  ] 热搜: 升级定位字体ipad聊天 帖子 AppCan交流社区 › 问答专区 › 自己搭建iOS推送服务器
php 写ios的本地推送
<?php /** 手机推送信息类 @author:wtt */ class Push{ private $deviceToken; private $message; function __construct($deviceToken,$message){ $this->deviceToken = $deviceToken; $this->message = $message;
mqtt协议推送服务器php
好的运用,请大家一起分享,方便php后台和android的国通
iOS远程推送Demo和PHP服务器配置、以及问题的解决方法
写这篇文章的目的是为了自己做笔记,以免下次再出现同样的错误,如果对你有帮助,你可以接着往下看看。。。。1、配置APNs相关证书      关于相关证书的配置,参考的是网上的博客:http://zxs19861202.iteye.com/blog/1532460。其中公钥和私钥的文件的p12导出一定要导正确,不然在服务器发送时会报错,楼主就犯了这个错误。这块会在后面提及。      特别