国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

IOSphp服務器客戶端準備工作

2020-03-22 19:52:39
字體:
來源:轉載
供稿:網友
  • 今天終于完完全全的搞明白了,APNs 推送前,客戶端的準備工作需要那一些。如果有錯誤的地方,歡迎大神指出來。

    準備工作:

    1.到開發者中心,創建app Id,選擇push notification 功能(game center 和另外一個是必選的)。


    2.創建certificates

    注意:內部開發,只能是用Develpment,producation是測試完了,準備發布到appstore的時候再弄的。

    其中按照Develop 流程的介紹,會創建一個CSR文件(production版本也可以公用這個CSR文件),通過 鑰匙串(通用菜單里的某個應用)創建,詳情見官方

    CertificateSigningRequest.certSigningRequest,這個是最終生產出的文件

    3.創建cert 文件。根據第二步,會得到一個cert文件,cert文件分 dev和pro版本。注意我們用dev測試,pro是發布

    4.導入cert 文件入 鑰匙串

    5.制作 SSL和 私鑰 的 PEM格式文件(php服務端需要)

    a。分別制作SSL(cert文件)和 key(私鑰)的p12格式文件,通過導出獲得。(注意命名)

    b.通過終端shell 輸入命令,得到SSL 和 key 的 2個PEM 格式的文件,并且將它們合二為一

    命令參數如下:

    原文地址:點擊打開鏈接http://blog.csdn.net/tuxiangqi/article/details/17245553

    cd 存放文件夾的路徑

    openssl pkcs12 -clcerts -nokeys -out 輸出文件名.pem -in 原文件的名字例如SSL(Cert文件).p12 (將SSLcert文件從p12變為pem)

    openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12 (將key.p12 文件變為 pem,這里會提示一定要設置 私鑰的解壓密碼,至少4位,你輸入即可)

    openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem (這個命令是將私鑰剛才設置的 至少4位密碼 去除,如果你想保留也可以,但是需要和php服務端的同事說明下)

    cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem (這個命令是將 SSL 和私鑰 編譯為一個文件pem 命名可以自己改)

    下面是從網上找到的其他資源,關于php服務器的設置

    <?php          $_POST['token'] = "fe28006a9d57b0727514cf42e9549446f0d4fc509cdexxxxxxxxxx";	    $deviceToken = $_POST['token']; //取得設備的Token,獲取方法便見下文	   	    $body = array("aps" => array("alert" => "message123gggg32323333", "badge" => 1, "sound"=>'default'));  //推送方式,包括了提示內容,提示方式和提示聲音。	    	    $ctx = stream_context_create();	    	    //如果在Windows的服務器上,尋找pem路徑會有問題,路徑修改成這樣的方法:	    $pem = !empty($this->cfg['isga']) && $this->cfg['isga'] == 2?'apns-dev.pem':'apns-dev.pem'; //臨時全部為開發狀態	    stream_context_set_option($ctx, 'ssl', 'local_cert', "/data/web/cert/".$pem);	    //linux 的服務器直接寫pem的路徑即可	    	    stream_context_set_option($ctx, 'ssl', 'local_cert', <pre name="code" html' target='_blank'>class="html">"/data/web/cert/".$pem);<pre name="code" class="html"><pre name="code" class="html">	    //如果你的pem存有密碼,需要加一個密碼登陸語句	stream_context_set_option($ctx, 'ssl', 'passphrase', '');                //如果你的pem存有密碼,需要加一個密碼登陸語句                //$pass = ”123123“;        //stream_context_set_option($ctx, ‘ssl’, ‘passphrase’, $pass);                //此處有兩個服務器需要選擇,如果是開發測試用,選擇第二名sandbox的服務器并使用Dev的pem證書,如果是正是發布,使用Product的pem并選用正式的服務器                $fp = stream_socket_client("ssl://gateway.push.apple.com:2195", $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);                $fp = stream_socket_client("ssl://gateway.sandbox.push.apple.com:2195", $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);                if (!$fp) {                    print_r("Failed to connect $err $errstrn");                    return;                }                print_r("Connection OK");                $payload = json_encode($body);                $msg = chr(0).pack("n", 32).pack('H*', str_replace(' ', '', $deviceToken)).pack("n",strlen($payload)).$payload;                       print_r("sending message :".$payload."");                fwrite($fp, $msg);                fclose($fp);?>

    差不多這里弄好了,你就可以 按照其他 的服務器 教程去弄了。。。網上很多。

    當然,你的

    關于 和php 服務器交互這塊,到這里就結束了

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 玉山县| 会泽县| 永清县| 綦江县| 广平县| 新建县| 如东县| 临漳县| 二连浩特市| 林周县| 通河县| 天等县| 白城市| 铜鼓县| 唐河县| 金寨县| 都兰县| 海门市| 涿鹿县| 贺兰县| 安达市| 尼勒克县| 永登县| 延边| 昌乐县| 祁门县| 霍林郭勒市| 收藏| 商丘市| 泗水县| 同心县| 民乐县| 东丽区| 兴城市| 温州市| 台江县| 依兰县| 新和县| 金溪县| 长阳| 汤原县|