php iosグループプッシュ
Jun 23, 2016 pm 01:54 PM
ios
php
押す
説明: IOS の APNS に通知をプッシュするためのサーバー側として php を使用します。 添付のコードは
public static function apple_push($data,$deviceToken){ $passphrase='123456'; $ckfile="ck.pem"; $ctx = stream_context_create(); stream_context_set_option($ctx, 'ssl', 'local_cert', $ckfile); stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase); $fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195',$err,$errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx); //$fp = stream_socket_client('ssl://gateway.push.apple.com:2195',$err,$errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx); if(!$fp){ return false; } $payload=json_encode($data); $pushdata = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload; $result = fwrite($fp, $pushdata, strlen($pushdata)); if(!$result){ file_put_contents(dirname(__FILE__)."/pushlog.txt",$result.'-'.$deviceToken."-".microtime().PHP_EOL,FILE_APPEND); } fclose($fp);}
ログイン後にコピー
シングル プッシュでは問題ありません
問題の説明:
グループ プッシュが必要です 以前は、ソケット リンクを使用して書きました。 Enter を押して fp を閉じますが、プッシュを受け取らなかった人もいます。オンラインでは、その人の携帯電話トークン (deviceToken) の 1 つに問題があると、Apple サーバーがソケット リンクを中断すると言われています。 。
ソケットを使用して各ユーザーが開く、書き込む、閉じるように変更しましたが、これは非常に遅いことがわかり、バックグラウンドでのプッシュではありましたが、完了するには Energizer が必要でした。 30分以内に押します。
私が最初に考えたのは、パラメータを使用せずにこの php ページに同時に 10 回アクセスし、プッシュされるユーザーを 10 の部分に分割するということでした。
グループプッシュの良い方法がわかりません
現在のコードを添付します
ディスカッションへの返信(解決策)
この種のことは間違いなく非同期で実装する必要があります
xmpphp を試して、チャットサーバーを実装すると、より信頼できる可能性があります。
非同期ですが、毎回開いたり閉じたりするのは時間がかかりすぎて、30分以内にプッシュすることはできません。
xmpphp の使用は考えていません。非同期プッシュなので、永続的な接続は必要ありません。
さて、私の解決策は次のとおりです: pcntl を使用し、実行のために 10 個のプロセスを開きます
これを迅速に行う唯一の方法は、複数のプロセスを使用することです。
ご回答ありがとうございます。しかし、pcntl を使用するときに別の問題が発生しました
http://bbs.csdn.net/topics/390829010
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

人気の記事
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD

人気の記事
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7307
9


Java チュートリアル
1623
14


CakePHP チュートリアル
1344
46


Laravel チュートリアル
1259
25


PHP チュートリアル
1207
29



Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法
