php从苹果apns的feedback服务器获取推送失败的token
注意事项: 1.建议和feedback服务器建立长连接,连接过于频繁有可能被当做攻击(简简单单的做一些测试时没有关系的); 2.获取的token是在上次你给你的应用发推送失败时加feedback服务的,里面会返回失败的具体时间 3.返回的数据由三部分组成,请看下面的图 结
注意事项:
1.建议和feedback服务器建立长连接,连接过于频繁有可能被当做攻击(简简单单的做一些测试时没有关系的);
2.获取的token是在上次你给你的应用发推送失败时加feedback服务的,里面会返回失败的具体时间
3.返回的数据由三部分组成,请看下面的图
结构中包含三个部分,第一部分是一个上次发推送失败的时间戳,第二个部分是device_token的长度,第三部分就是失效的device_token
下面是我的代码:
<?php /** * @desc 连接苹果的推送服务器 * @return bool|resource */ function connect_feedback(){ $passphrase = 'cheshi123'; $cert_file = 'cheshi_productionck.pem';//推送的证书地址,环境不要错了 $feedback_server = 'ssl://feedback.push.apple.com:2196';//feedback服务器地址 //沙盒环境地址是 ssl://feedback.sandbox.push.apple.com:2196 $ctx = stream_context_create(); stream_context_set_option($ctx, 'ssl', 'local_cert', $cert_file); stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase); $fp = stream_socket_client($feedback_server, $error, $errorString, 60, STREAM_CLIENT_CONNECT, $ctx); if(!$fp){ print "Failed to connect feedback server: $error $errorString\n"; return false; }else{ print "Connection to feedback server OK\n"; } return $fp; } /** * @desc 连接本地的redis,用来存储获取到的token,也可以用其他方式存储 * @param $redis_server * * @return bool|Redis */ function connect_redis($redis_server){ $param = parse_url($redis_server); $redis = new Redis(); if($redis->connect($param['host'],$param['port'])){ print "connect redis OK"; }else{ print "failed to connect redis server"; return false; } return $redis; } /** * @desc 执行推送操作的主要代码 */ function feedback(){ $count1 = 0; $run_times = 0; $redis_server = "tcp://localhost:6379"; $iostokenremoved= 'iostokenremoved'; $iostokenremoved_num = 'iostokenremoved_num'; $fp = connect_feedback(); $redis = connect_redis($redis_server); //苹果建议provider和feedback服务维持一个长连接,如果频繁的建立连接可能会被当做攻击处理 $devcon =''; while($run_timesping()==='+PONG'){ print date('Ymd His').'|redis server disconnected'; @$redis->close(); unset($redis); $redis = connect_redis($redis_server); } //每次读取38个字段,这是保存的一个完整token 信息的长度 while ($devcon = fread($fp, 38)){ $count1 ++ ; $arr = unpack("H*", $devcon);//解包传过来的二进制数据 $rawhex = trim(implode("", $arr)); $feedbackTime = hexdec(substr($rawhex, 0, 8)); $feedbackDate = date('Y-m-d H:i:s', $feedbackTime); $feedbackDeviceToken = substr($rawhex, 12, 64); //记录被删除的token $redis->hSet($iostokenremoved,$feedbackDeviceToken,$feedbackDate); //记录每天的卸载数量 $redis->hIncrBy($iostokenremoved_num,date('Y-m-d',$feedbackTime),1); } echo 'FeedBack:'. $count1 . PHP_EOL; usleep(10000000);//sleep 10秒 } $redis->close(); fclose($fp); } //可以通过命令行来执行这个脚本 php -f feedback.php feedback if(isset($argc[1]) && function_exists($argv[1])){ $argv[1](); }else{ die('invalid input'); }
原文地址:php从苹果apns的feedback服务器获取推送失败的token, 感谢原作者分享。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다

DeepSeek Smart AI 도구 다운로드 및 설치 안내서 (Apple 사용자) DeepSeek은 Apple 사용자에게 다운로드 및 설치 방법을 안내합니다. 1. 단계 다운로드 및 설치 : AppStore App Store를 열고 검색 창에 "DeepSeek"을 입력하십시오. 올바른 버전이 다운로드되도록 애플리케이션 이름과 개발자 정보를주의 깊게 확인하십시오. 응용 프로그램 세부 정보 페이지에서 "얻기"버튼을 클릭하십시오. 첫 번째 다운로드에는 Appleid 암호 확인이 필요할 수 있습니다. 다운로드가 완료되면 직접 열 수 있습니다. 2. 등록 프로세스 : DeepSeek 응용 프로그램에서 로그인/등록 포털을 찾으십시오. 휴대 전화 번호에 등록하는 것이 좋습니다. 휴대폰 번호를 입력하고 확인 코드를 받으십시오. 사용자 계약을 확인하고

Bybit Exchange 링크를 직접 다운로드하고 설치할 수없는 이유는 무엇입니까? Bybit은 사용자에게 거래 서비스를 제공하는 암호 화폐 거래소입니다. Exchange의 모바일 앱은 다음과 같은 이유로 AppStore 또는 GooglePlay를 통해 직접 다운로드 할 수 없습니다. 1. App Store Policy는 Apple과 Google이 App Store에서 허용되는 응용 프로그램 유형에 대한 엄격한 요구 사항을 갖지 않도록 제한합니다. Cryptocurrency Exchange 응용 프로그램은 금융 서비스가 포함되며 특정 규정 및 보안 표준이 필요하기 때문에 이러한 요구 사항을 충족하지 않습니다. 2. 법률 및 규정 준수 준수 많은 국가에서 암호 화폐 거래와 관련된 활동이 규제되거나 제한됩니다. 이러한 규정을 준수하기 위해 BYBIT 응용 프로그램은 공식 웹 사이트 또는 기타 공인 채널을 통해서만 사용할 수 있습니다.

앱을 다운로드하고 계정의 안전을 보장하기 위해 공식 채널을 선택하는 것이 중요합니다.

문자열은 문자, 숫자 및 기호를 포함하여 일련의 문자입니다. 이 튜토리얼은 다른 방법을 사용하여 PHP의 주어진 문자열의 모음 수를 계산하는 방법을 배웁니다. 영어의 모음은 A, E, I, O, U이며 대문자 또는 소문자 일 수 있습니다. 모음이란 무엇입니까? 모음은 특정 발음을 나타내는 알파벳 문자입니다. 대문자와 소문자를 포함하여 영어에는 5 개의 모음이 있습니다. a, e, i, o, u 예 1 입력 : String = "Tutorialspoint" 출력 : 6 설명하다 문자열의 "Tutorialspoint"의 모음은 u, o, i, a, o, i입니다. 총 6 개의 위안이 있습니다

이 기사에서는 Gate.io의 공식 웹 사이트에 액세스하는 방법, 중국어 전환, 계정에 등록 또는 로그인하는 방법에 대한 자세한 내용을 안내하며, 모바일 앱 다운로드 및 사용 절차를 선택하여 Gate.io Exchange를 쉽게 시작할 수 있도록 도와줍니다. 중국어로 Gate.io 사용에 대한 더 많은 튜토리얼을 보려면 계속 읽으십시오.

Ouyi Okx는 사용자에게 안전하고 편리한 거래 경험을 제공하는 세계 최고의 암호 화폐 거래소입니다. 사용자는 공식 채널을 통해 Android 및 Apple 버전을 포함한 Ouyi Okx의 모바일 앱을 다운로드 할 수 있습니다.

초록 :이 기사는 Apple 장치에 가상 통화 거래 응용 프로그램을 설치하고 등록하는 방법에 대한 사용자를 안내합니다. Apple은 가상 통화 응용 프로그램에 대한 엄격한 규정을 보유하고 있으므로 사용자는 설치 프로세스를 완료하기 위해 특별한 조치를 취해야합니다. 이 기사는 응용 프로그램 다운로드, 계정 작성 및 신원 확인을 포함하여 필요한 단계에 대해 자세히 설명합니다. 이 기사 가이드에 이어 사용자는 Apple 장치에서 가상 통화 거래 앱을 쉽게 설정하고 거래를 시작할 수 있습니다.
