我试图从我的localhost发送推送通知到我的iDevices都正常工作但是在PHP错误日志中我收到了下面的警告为什么?
注意:我收到所有设备上的推送
警告:
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);
答案 0 :(得分:8)
Apple很可能在收到您的有效负载后终止连接。
要使警告静音,请进行以下更改:
@socket_close($apns);
答案 1 :(得分:1)
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()调用中指定的那些。