当我尝试调用$ sns->发布(PHP)时,我遇到了一个奇怪的错误 - 它永远不会返回,我不确定它是否会以静默方式死亡,但我无法捕获异常或获取返回代码。 当能够在SNS控制台中禁用令牌(端点)的设备时,我能够跟踪此情况。它在初始调用时被禁用,我认为由于GCM返回的错误令牌无效。 我做错了什么,如何防止这个问题?我不想检查每个端点是否被启用,因为我可能会推动1000个中的10个。但是我肯定想继续执行我的推送循环。 有什么想法吗? AWS团队论坛似乎毫无用处,自从AWS团队成员原始回复询问自那时以来没有响应的代码以来已经有好几周了。
答案 0 :(得分:0)
您可以在发送推送通知之前检查端点是否已被禁用 -
$arn_code = ARN_CODE_HERE;
$arn_arr = array("EndpointArn"=>$arn_code);
$endpointAtt = $sns->getEndpointAttributes($arn_arr);
//print_r($endpointAtt);
if($endpointAtt != 'failed' && $endpointAtt['Attributes']['Enabled'] != 'false')
{
....PUBLISH CODE HERE....
}
它不会停止执行。 希望它会对你有所帮助。