Heim >Backend-Entwicklung >PHP-Tutorial >极光推送按照官网例子写的demo报错"Response timeout"但手机客户端还是能收到推送消息,而且是多条?

极光推送按照官网例子写的demo报错"Response timeout"但手机客户端还是能收到推送消息,而且是多条?

WBOY
WBOYOriginal
2016-06-06 20:09:301108Durchsuche

<code><?php require_once 'vendor/autoload.php';

use JPush\Model as M;
use JPush\JPushClient;
use JPush\Exception\APIConnectionException;
use JPush\Exception\APIRequestException;

// date_default_timezone_set(PRC); 
date_default_timezone_set("Asia/Shanghai");
$app_key='10310527ba9fce07c22bc849';
$master_secret='fa3bf270631e1a688281efbe';
// echo "<p>start";
$br = '<br>';
$client = new JPushClient($app_key, $master_secret);

$tname="TestTeacherAqq_com";
$day="2016-1-12 11:01:02";
$oid="123424";
$result = $client->push()
        ->setPlatform(M\all)
        ->setAudience(M\audience(M\alias(array($tname)))) 
        ->setNotification(M\notification("Linghaowan.The appointment at".$day." has finished. #".$oid))
        ->send();
// echo 'Push Success.' . $br;
// echo 'sendno : ' . $result->sendno . $br;
// echo 'msg_id : ' .$result->msg_id . $br;
// echo 'Response JSON : ' . $result->json . $br;

 ?></code>

后端只发一次,但手机端会接收到多达4条,浏览器上还会报错

<code>Fatal error: Uncaught exception 'JPush\Exception\APIConnectionException' with message 'Response timeout. Your request has probably be received by JPUsh Server,please check that whether need to be pushed again</code>

回复内容:

<code><?php require_once 'vendor/autoload.php';

use JPush\Model as M;
use JPush\JPushClient;
use JPush\Exception\APIConnectionException;
use JPush\Exception\APIRequestException;

// date_default_timezone_set(PRC); 
date_default_timezone_set("Asia/Shanghai");
$app_key='10310527ba9fce07c22bc849';
$master_secret='fa3bf270631e1a688281efbe';
// echo "<p>start";
$br = '<br>';
$client = new JPushClient($app_key, $master_secret);

$tname="TestTeacherAqq_com";
$day="2016-1-12 11:01:02";
$oid="123424";
$result = $client->push()
        ->setPlatform(M\all)
        ->setAudience(M\audience(M\alias(array($tname)))) 
        ->setNotification(M\notification("Linghaowan.The appointment at".$day." has finished. #".$oid))
        ->send();
// echo 'Push Success.' . $br;
// echo 'sendno : ' . $result->sendno . $br;
// echo 'msg_id : ' .$result->msg_id . $br;
// echo 'Response JSON : ' . $result->json . $br;

 ?></code>

后端只发一次,但手机端会接收到多达4条,浏览器上还会报错

<code>Fatal error: Uncaught exception 'JPush\Exception\APIConnectionException' with message 'Response timeout. Your request has probably be received by JPUsh Server,please check that whether need to be pushed again</code>

是网络延迟问题,可以把 SDK 中的 CONNECT_TIMEOUT 设置的长一些(10秒)就好了。

另外建议升级成最新的 SDK,新版的接口比老的好用很多!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn