zoukankan      html  css  js  c++  java
  • php做推送服务端实现ios消息推送

    本文部分内容引用于 http://zxs19861202.iteye.com/blog/1532460

    准备工作

    1.获取手机注册应用的deviceToken(iphone手机注册应用时返回唯一值deviceToken)

    2.获取ck.pem文件(做手机端的给)

    3.获取pass phrase(做手机端的给)

    testpush.php文件

    [php] view plain copy
     
    1. <?php  
    2. //手机注册应用返回唯一的deviceToken  
    3. $deviceToken = '6ad7b13f b05e6137 a46a60ea 421e5016 4b701671 cc176f70 33bb9ef4 38a8aef9';  
    4. //ck.pem通关密码  
    5. $pass = 'jetson';     
    6. //消息内容  
    7. $message = 'A test message!';  
    8. //badge我也不知是什么  
    9. $badge = 4;  
    10. //sound我也不知是什么(或许是推送消息到手机时的提示音)  
    11. $sound = 'Duck.wav';  
    12. //建设的通知有效载荷(即通知包含的一些信息)  
    13. $body = array();  
    14. $body['id'] = "4f94d38e7d9704f15c000055";  
    15. $body['aps'] = array('alert' => $message);  
    16. if ($badge)  
    17.   $body['aps']['badge'] = $badge;  
    18. if ($sound)  
    19.   $body['aps']['sound'] = $sound;  
    20. //把数组数据转换为json数据  
    21. $payload = json_encode($body);  
    22. echo strlen($payload)," ";  
    23.   
    24. //下边的写法就是死写法了,一般不需要修改,  
    25. //唯一要修改的就是:ssl://gateway.sandbox.push.apple.com:2195这个是沙盒测试地址,ssl://gateway.push.apple.com:2195正式发布地址  
    26. $ctx = stream_context_create();  
    27. stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');    
    28. stream_context_set_option($ctx, 'ssl', 'passphrase', $pass);  
    29. $fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);  
    30. if (!$fp) {  
    31.     print "Failed to connect $err $errstr ";  
    32.     return;  
    33. }  
    34. else {  
    35.    print "Connection OK <br/>";  
    36. }  
    37. // send message  
    38. $msg = chr(0) . pack("n",32) . pack('H*', str_replace(' ', '', $deviceToken)) . pack("n",strlen($payload)) . $payload;  
    39. print "Sending message :" . $payload . " ";    
    40. fwrite($fp, $msg);  
    41. fclose($fp);  
    42. ?>  
  • 相关阅读:
    svn ------ 在服务器上创建项目并提交程序到服务器
    攀岩墙
    群晖docker安装sqli-lab
    win10 hyper-v与VMware冲突解决
    vue3 封装仿antd-vue的Table组件基本实现
    vue3自定义Table组件源码
    idea怎样修改tomcat启动的初始页面
    解决用java代码导入数据到mysql乱码问题
    day01-Markdown语法详解
    windows 10 如何管理自己的磁盘
  • 原文地址:https://www.cnblogs.com/xiaoleiel/p/8334303.html
Copyright © 2011-2022 走看看