2015-02-25 3 views
0

Я поражаю странную ошибку, когда пытаюсь вызвать $ sns-> publish (PHP) - он никогда не возвращается, я не уверен, что он умирает молча, но я не смог поймать исключение или получить код возврата. Я смог отслеживать это, когда устройство для токена (конечная точка), похоже, уже отключено в консоли SNS. Он отключается при первом вызове, я бы предположил, что ошибка, возвращаемая GCM, недействительна. Что я делаю неправильно и как я могу предотвратить проблему? Я не хочу проверять каждую конечную точку для того, чтобы быть включенным, так как я могу нажать до 10 из 1000. Однако я определенно хочу продолжить выполнение моего цикла push. Любые мысли? Форум команды AWS кажется бесполезным, прошло уже несколько недель с момента первоначального ответа члена команды AWS с запросом кода, который не реагирует с того времени.AWS Sns публикует молчание, когда устройство отключено?

ответ

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.... 
} 

Это не остановит выполнение. Надеюсь, это поможет вам.

+0

как я уже сказал: «Я не хочу проверять каждую конечную точку для включения, так как я могу нажать до 10 из 1000». – kos

+0

Тогда его невозможно. То, что я делаю для этого, это каждый раз, когда я беру токен устройства у пользователя и регистрирую/создаю endPoint для этого в AWS. Не регистрирует его уже зарегистрированный или нет и посылая параметр всегда как Enabled => true. Поэтому, если эта конечная точка была отключена, она снова будет включена. Поэтому я никогда не получаю условие, при котором конечная точка отключается при отправке SNS. –

+0

он не должен просто умереть :-) он должен вернуться с отказом какой-то не умереть – kos

Смежные вопросы