質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

0回答

1730閲覧

Apnsからのレスポンスについて

settyan

総合スコア60

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/10/20 06:13

お世話になっております。
###iOSでのPush通知のことで質問です。

以下のPHPファイルでAPNSへ通知リクエストをおくっているのですが、
/--/
echo $result;
/--/

の部分を見てみると「2桁の数字」が返ってきているのですが
この数字はどんな意味なのでしょうか?

どなたかご教授くださればと思います。
それと以下のPHPの修正点などもいただけたら幸いです。

どうかよろしくお願いします。

php

1<?php 2 3//APNSへの接続関数 4function connectAPNS($sslclient,$pem_path,$passphrase){ 5 6 $ctx = stream_context_create(); 7 stream_context_set_option($ctx, 'ssl', 'local_cert', $pem_path); 8 stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase); 9 10 $fp = stream_socket_client( 11 $sslclient, $err, 12 $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx); 13 14 if(!$fp){ 15 echo '接続エラーになりました。一秒後に再読み込みします。'.PHP_EOL; 16 sleep(1); 17 $fp = connectAPNS($sslclient,$pem_path,$passphrase); 18 return $fp; 19 20 }else{ 21 echo 'APNSに接続が完了しました'.PHP_EOL; 22 return $fp; 23 } 24} 25 26//送信処理 27$passphrase = 'xxxxxxxxxxxx'; 28$pem_path = 'xxx.pem'; 29$sslclient = 'ssl://gateway.sandbox.push.apple.com:2195'; 30$detail = $_POST['alert']; 31$dtoken = $_POST['dtoken']; 32 33 34//APNSに接続 35$fp = connectAPNS($sslclient,$pem_path,$passphrase); 36 37//送信するぼでぇを作成 38$body['aps'] = array( 39 'alert' => $_POST['alert'], 40 'sound' => 'default', 41 'badge' => 1, 42); 43 44//ぼでぇをじぇーそん化 45$payload = json_encode($body); 46$json_size = strlen($payload); 47$size = 0; 48 49//var_dump($dtoken); 50if(is_null($dtoken) || $dtoken == "null" ){ 51 52 echo 'デバイストークンがありません' . PHP_EOL; 53 exit(); 54} 55 56 57$msg = chr(0) . pack('n',32) . pack('H*',$dtoken) . pack('n',$json_size) .$payload; 58$msg_size = strlen($msg); 59$result = fwrite($fp, $msg, $msg_size); 60 61/*ーーーーー*/ 62echo $result; 63/*ーーーーー*/ 64 65if(!$result){ 66 echo '送信できませんでした。' . PHP_EOL; 67}else{ 68 echo 'io'. PHP_EOL; 69} 70 71$size += $msg_size; 72if($size >= 5120){ 73 echo '通信容量を超えてしまったので再接続します。'. PHP_EOL; 74 fclose($fp); 75 sleep(1); 76 $fp = connectAPNS($sslclient,$pem_path,$passphrase); 77 echo '再接続しました'.PHP_EOL; 78 $size = 0; 79} 80fclose($fp); 81?> 82

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問