отправить push-уведомление с моего сервера PHP - PullRequest
4 голосов
/ 26 апреля 2011

Я пытаюсь отправить push-уведомление с моего локального хоста на все iDevices, все работает правильно, но в журнале ошибок PHP я получил предупреждение ниже. Почему?

ПРИМЕЧАНИЕ. Я получаю Push на всех устройствах

ПРЕДУПРЕЖДЕНИЕ:

PHP Warning:  socket_close(): supplied resource is not a valid Socket resource in /Applications/MAMP/htdocs/Push/SendPush.php on line xxx

Часть моего кода:

//....
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);

$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);
//...

socket_close($apns);
fclose($apns);

Ответы [ 2 ]

8 голосов
/ 28 апреля 2011

Скорее всего, Apple прерывает соединение после получения вашей полезной нагрузки.

Чтобы отключить предупреждение, сделайте следующее изменение:

@socket_close($apns);
1 голос
/ 26 апреля 2011

stream_socket_client() возвращает false, если произошла ошибка. Вы должны явно проверить это:

$apns = stream_socket_client(...);
if ($apns === FALSE) then
    die("Error while getting stream socket ($error): $errorString");
}

где $ error / $ errorString - это те, которые вы указали в вызове stream_socket_client ().

...