目次
ディスカッションへの返信(解決策)

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 までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

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

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

CakePHP の日付と時刻

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

CakePHP プロジェクトの構成

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

CakePHP ファイルのアップロード

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

CakePHP ルーティング

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP について話し合う

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

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

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP クイックガイド

See all articles