elainetian3 2016-04-05 03:42 采纳率: 25%
浏览 599
已结题

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

为什么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);
    }
} 
  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
    • ¥15 MCNP里如何定义多个源?
    • ¥20 双层网络上信息-疾病传播
    • ¥50 paddlepaddle pinn
    • ¥20 idea运行测试代码报错问题
    • ¥15 网络监控:网络故障告警通知
    • ¥15 django项目运行报编码错误
    • ¥15 请问这个是什么意思?
    • ¥15 STM32驱动继电器
    • ¥15 Windows server update services