PHP ターミナルプッシュ
PHP コードを使用して、iOS やその他のデバイスのプッシュ情報機能を実装するにはどうすればよいですか? お願いします具体的にiPadを送るか現金を送るか?
きっかけは何ですか?どのようなコンテンツがプッシュされますか?
具体的に言いますが、iPad を渡すべきですか、それとも現金を渡すべきですか?
きっかけは何ですか?どのようなコンテンツがプッシュされますか?
インターネットでこれを読みました
http://www.iteye.com/topic/1130630
これは Apple が携帯電話に送信するランダムなコンテンツのプッシュ通知に似ています
関連記事をご覧になったので、なぜまだここにいますか?
ここではアイデアしか提供できません。特定のコードは自分で記述する必要があります
原理は、接続 (ソケットと同様) を確立し、サーバーからデバイスにバイトを送信するだけであり、デバイスはその後それを処理できます。直接表示、ポップアップウィンドウ、通知、リマインダーの点滅など
それには 2 つの方法があります
1. サーバーがサーバーとして機能し、さまざまなデバイスがクライアントとして機能して、長時間の接続を確立します。サーバーはトリガー条件に基づいてメッセージを送信します。このアプローチはチャット ルームに少し似ています
2. Xiang Siwei を逆にして、さまざまなデバイスがサーバーとして機能し (はい、サーバーです)、サーバーにログインし、そのリスニング IP/ポートを書き留めます。 (必ずしもログイン後に送信することを意味するわけではありません。目的はオンライン ステータスを送信することだけです)、サーバーはさらに、クライアント プログラムを実行して、ログインしているすべてのデバイスに接続リクエストを送信するという条件をトリガーします。接続が成功すると、それが行われます。が送信されます
関連記事を読んだのに、なぜここで質問するのですか?
ここではアイデアしか提供できません。特定のコードは自分で記述する必要があります
原理は、接続 (ソケットと同様) を確立し、サーバーからデバイスにバイトを送信するだけであり、デバイスはその後それを処理できます。直接表示、ポップアップウィンドウ、通知、リマインダーの点滅など
それには 2 つの方法があります
1. サーバーがサーバーとして機能し、さまざまなデバイスがクライアントとして機能して、長時間の接続を確立します。サーバーはトリガー条件に基づいてメッセージを送信します。このアプローチはチャット ルームに少し似ています
2. Xiang Siwei を逆にして、さまざまなデバイスがサーバーとして機能し (はい、サーバーです)、サーバーにログインし、そのリスニング IP/ポートを書き留めます。 (必ずしもログイン後に送信することを意味するわけではありません。目的はオンライン ステータスを送信することだけです)、サーバーはさらに、クライアント プログラムを実行して、ログインしているすべてのデバイスに接続リクエストを送信するという条件をトリガーします。接続が成功すると、それが行われます。
を送信します。これは絶対に不可能です。だから質問しています。
役に立たないのですが、ご指導ありがとうございます
$fp = stream_socket_client(“ssl://gateway.sandbox.push.apple.com:2195″, $err, $errstr, 60,
STREAM_CLIENT_CONNECT, $ctx);
重要なのはこれです。通知を受信するには、アプリを Apple のサーバーに登録する必要があります。登録後、PHP は Apple のサーバーにメッセージを送信し、Apple のサーバーはプッシュを完了します。
PHP をアプリに直接プッシュする代わりに。
$fp = stream_socket_client(“ssl://gateway.sandbox.push.apple.com:2195″, $err, $errstr, 60,
STREAM_CLIENT_CONNECT, $ctx);
重要なのはこれです。通知を受信するには、アプリを Apple のサーバーに登録する必要があります。登録後、PHP は Apple のサーバーにメッセージを送信し、Apple のサーバーはプッシュを完了します。
PHP をアプリに直接プッシュする代わりに。
問題はこれです、
$deviceToken= '5a25d318035c3be9c2ca00572b81463c73c433aea6c738540d46db6a64f70125';//$deviceToken=$_REQUEST["token"];//推送方式,包含内容和声音$body = array("aps" => array("alert" => '推送测试',"badge" => 11,"sound"=>'default'));//创建数据流上下文对象$ctx = stream_context_create();//设置pem格式文件//$pem = dirname(__FILE__) . '/' . 'server_certificates_bundle_sandbox.pem';$pem = "server_certificates_bundle_sandbox.pem"; //echo $pem;//设置数据流上下文的本地认证证书stream_context_set_option($ctx,"ssl","local_cert", $pem); $pass = "";//设置数据流上下文的密码stream_context_set_option($ctx, 'ssl', 'passphrase', $pass); //产品发布APNS服务器,gateway.push.apple.com//测试APNS服务器,gateway.sandbox.push.apple.com//socket通讯$fp = stream_socket_client("ssl://gateway.push.apple.com:2195", $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx); if (!$fp) {echo "连接苹果服务器失败.";return;}print "连接苹果服务器OK\n";//载荷信息,JSON编码$payload = json_encode($body); //构建发送的二进制信息$msg = chr(0) . pack("n",32) . pack("H*", str_replace(' ', " ", $deviceToken)). pack("n",strlen($payload)) . $payload; echo "发送消息:" . $payload ."\n";fwrite($fp, $msg);fclose($fp);
つまり、ソケット通信が成功していないということです。状況はどうなっていますか
ブラウザはこれにアクセスします: https://gateway.push.apple.com:2195/
プログラムは SSL プロトコルを使用します。
デバイストークンと証明書アカウントのパスワードをお持ちですか?
トークンとアカウントのパスワードがあります。これは iOS 側から送られてきました
このプッシュ機能は実装されていますか? 1 つのコンテンツを複数のデバイスに同時にプッシュします。
どうやってやったの?