ホームページ > バックエンド開発 > PHPチュートリアル > PHPは「複数」の端末デバイスの「プッシュ」機能を実装します

PHPは「複数」の端末デバイスの「プッシュ」機能を実装します

WBOY
リリース: 2016-06-23 14:21:38
オリジナル
957 人が閲覧しました

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);
ログイン後にコピー


さて、ブラウザを開くと、Apple サーバーに接続できないことが直接表示されます...

つまり、ソケット通信が成功していないということです。状況はどうなっていますか

ブラウザはこれにアクセスします: https://gateway.push.apple.com:2195/
プログラムは SSL プロトコルを使用します。
デバイストークンと証明書アカウントのパスワードをお持ちですか?

トークンとアカウントのパスワードがあります。これは iOS 側から送られてきました

このプッシュ機能は実装されていますか? 1 つのコンテンツを複数のデバイスに同時にプッシュします。
どうやってやったの?

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート